6 #include "Publisher.hh" 10 #include "TaskInfo.pb.h" 27 void print(std::string opt =
"")
const;
30 void addConsumer(std::string uuid, std::shared_ptr<Socket> s);
31 void addFeeder(std::string uuid, std::shared_ptr<Socket> s);
32 void addWorker(std::string uuid, std::shared_ptr<Socket> s);
33 void addTask(TaskInfo * taskInfo, std::string cuuid, std::string fuuid,
37 virtual Socket *
onEnter(std::string
self, std::string fromType,
Message * msg, std::vector<std::string> & out);
42 std::shared_ptr<Feeder>
feeder(std::string uuid)
const;
43 std::shared_ptr<Consumer>
consumer(std::string uuid)
const;
44 std::shared_ptr<Worker>
worker(std::string uuid)
const;
45 Job *
job(std::string uuid);
59 int32_t
nSlots(
double mult = 1.0)
const;
60 void jobs(std::string clientUUID, std::vector<std::string> &
jobs)
const;
72 virtual void runTask(
TaskState * ts, std::string wk, std::string upstream) = 0;
79 virtual bool sendWhisper(
Socket * s, std::string to, std::vector<std::string> & v);
84 virtual void publish(std::string
id)
const;
87 std::map<std::string, Job *>
mJobs{};
91 std::map<std::string, std::shared_ptr<Worker>>
mWorkers{};
92 std::map<std::string, std::shared_ptr<Consumer>>
mConsumers{};
93 std::map<std::string, std::shared_ptr<Feeder>>
mFeeders{};
std::vector< std::string > mActiveJobs
List of active jobs.
uint64_t mFinishedJobTimeout
Finished job timeout in seconds.
void jobs(std::string clientUUID, std::vector< std::string > &jobs) const
Base salsa TaskState class.
std::shared_ptr< Worker > worker(std::string uuid) const
virtual Socket * onExit(std::string self, Message *msg, std::vector< std::string > &out)
virtual void terminateJob(std::string uuid)
std::map< std::string, std::shared_ptr< Consumer > > mConsumers
List of Consumers.
virtual void addTaskSlot()
virtual bool haveMoreTasks()
virtual void noMoreTasks(std::string jobUUID)
int32_t nSlots(double mult=1.0) const
virtual void resultTask(TaskInfo *task)
uint64_t finishedJobTimeout() const
Returns finished job timeout.
void addFeeder(std::string uuid, std::shared_ptr< Socket > s)
Job * job(std::string uuid)
void print(std::string opt="") const
std::map< std::string, Job * > mJobs
List of jobs.
virtual Publisher * publisher() const
std::vector< std::string > mFinishedJobs
List of finished jobs.
virtual void runTask(TaskState *ts, std::string wk, std::string upstream)=0
Run task interface.
virtual Socket * onWhisper(std::string self, Message *msg, std::vector< std::string > &out)
std::map< std::string, std::shared_ptr< Worker > > mWorkers
List of Workers.
virtual void publish(std::string id) const
void addConsumer(std::string uuid, std::shared_ptr< Socket > s)
TaskPool * mpTaskPool
Task pool.
virtual bool sendWhisper(Socket *s, std::string to, std::vector< std::string > &v)
Publisher * mpPublisher
Publisher.
void addWorker(std::string uuid, std::shared_ptr< Socket > s)
virtual bool handleTaskPool(void *p)
TaskPool * taskPool()
Get NM's task pool.
virtual bool terminateFinishedJobs()
std::map< std::string, std::shared_ptr< Feeder > > mFeeders
List of Feeders.
virtual Socket * onEnter(std::string self, std::string fromType, Message *msg, std::vector< std::string > &out)
Base salsa TaskPool class.
void addTask(TaskInfo *taskInfo, std::string cuuid, std::string fuuid, Salsa::Job::EQueueType t=Salsa::Job::pending)
void finishedJobTimeout(uint64_t t)
Sets finished job timeout.
std::shared_ptr< Feeder > feeder(std::string uuid) const
virtual void terminateAllJobs(bool finishedonly=false)
std::shared_ptr< Consumer > consumer(std::string uuid) const
virtual void resultTaskToExternal(Job *, TaskInfo *)
Handle return of task and send it to external client.