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;
79 virtual bool sendWhisper(
Socket * s, std::string to, std::vector<std::string> & v);
84 virtual bool publish(std::string
id,
bool force =
false)
const;
92 std::map<std::string, Job *>
mJobs{};
96 std::map<std::string, std::shared_ptr<Worker>>
mWorkers{};
97 std::map<std::string, std::shared_ptr<Consumer>>
mConsumers{};
98 std::map<std::string, std::shared_ptr<Feeder>>
mFeeders{};
virtual void resultTaskToExternal(Job *, TaskInfo *)
Handle return of task and send it to external client.
Publisher * mpPublisher
Publisher.
virtual bool publish(std::string id, bool force=false) const
virtual bool terminateFinishedJobs()
std::vector< std::string > mActiveJobs
List of active jobs.
std::shared_ptr< Feeder > feeder(std::string uuid) const
std::string mClusterAlias
Cluster alias.
virtual bool sendWhisper(Socket *s, std::string to, std::vector< std::string > &v)
virtual Socket * onWhisper(std::string self, Message *msg, std::vector< std::string > &out)
std::string clusterAlias()
Returns Cluster alias.
virtual void terminateAllJobs(bool finishedonly=false)
std::shared_ptr< Worker > worker(std::string uuid) const
Job * job(std::string uuid)
void addFeeder(std::string uuid, std::shared_ptr< Socket > s)
std::map< std::string, std::shared_ptr< Consumer > > mConsumers
List of Consumers.
virtual Socket * onExit(std::string self, Message *msg, std::vector< std::string > &out)
virtual bool haveMoreTasks()
TaskPool * taskPool()
Get NM's task pool.
virtual void terminateJob(std::string uuid)
virtual bool handleTaskPool(void *p)
void clusterAlias(std::string n)
Sets Cluster alias.
virtual Publisher * publisher() const
uint64_t mFinishedJobTimeout
Finished job timeout in seconds.
void addTask(TaskInfo *taskInfo, std::string cuuid, std::string fuuid, Salsa::Job::EQueueType t=Salsa::Job::pending)
std::shared_ptr< Consumer > consumer(std::string uuid) const
std::map< std::string, std::shared_ptr< Worker > > mWorkers
List of Workers.
virtual void resultTask(TaskInfo *task)
void jobs(std::string clientUUID, std::vector< std::string > &jobs) const
std::map< std::string, Job * > mJobs
List of jobs.
void addWorker(std::string uuid, std::shared_ptr< Socket > s)
std::map< std::string, std::shared_ptr< Feeder > > mFeeders
List of Feeders.
virtual void runTask(TaskState *ts, std::string wk, std::string upstream)=0
Run task interface.
virtual Socket * onEnter(std::string self, std::string fromType, Message *msg, std::vector< std::string > &out)
virtual void addTaskSlot()
std::vector< std::string > mFinishedJobs
List of finished jobs.
void addConsumer(std::string uuid, std::shared_ptr< Socket > s)
int32_t nSlots(double mult=1.0) const
virtual void noMoreTasks(std::string jobUUID)
uint64_t finishedJobTimeout() const
Returns finished job timeout.
TaskPool * mpTaskPool
Task pool.
void print(std::string opt="") const
void finishedJobTimeout(uint64_t t)
Sets finished job timeout.
Base salsa TaskPool class.
Base salsa TaskState class.