SchedulerDriverStatus scheduler_launchTasks( SchedulerDriverPtr driver, ProtobufObj* offerId, ProtobufObj* tasks, ProtobufObj* filters) { TRACE("scheduler_launchTasks()\n"); assert(driver != NULL); assert(offerId != NULL); assert(tasks != NULL); MesosSchedulerDriver* mdriver = reinterpret_cast<MesosSchedulerDriver*>(driver); OfferID offer; if (!utils::deserialize<OfferID>(offer, offerId)) { return DRIVER_ABORTED; } vector<TaskInfo> taskInfos; if (!utils::deserialize<TaskInfo>(taskInfos, tasks)) { return DRIVER_ABORTED; } Filters filters_; if (filters != NULL && filters->data != NULL) { if (!utils::deserialize<Filters>(filters_, filters)) { return DRIVER_ABORTED; } } TRACE("scheduler_launchTasks start()\n"); return mdriver->launchTasks(offer, taskInfos, filters_); }
SchedulerDriverStatus scheduler_launchTasks(SchedulerPtrPair state, ErlNifBinary* offerId, BinaryNifArray* taskInfos, ErlNifBinary* filters) { assert(state.driver != NULL); assert(offerId != NULL); assert(taskInfos != NULL); OfferID offerid_pb; vector<TaskInfo> taskInfo_ ; Filters filter_pb; if(!deserialize<OfferID>(offerid_pb,offerId)) { return DRIVER_ABORTED; }; if(!deserialize<TaskInfo>( taskInfo_, taskInfos)) {return DRIVER_ABORTED;}; if(!deserialize<Filters>(filter_pb,filters)) { return DRIVER_ABORTED; }; //offerid_pb.PrintDebugString(); //taskInfo_[0].PrintDebugString(); //filter_pb.PrintDebugString(); MesosSchedulerDriver* driver = reinterpret_cast<MesosSchedulerDriver*> (state.driver); return driver->launchTasks(offerid_pb, taskInfo_,filter_pb); }