salsa  0.3.0
TaskPool.hh
1 #pragma once
2 
3 #include <TaskState.hh>
4 
5 namespace Salsa {
14 
15 class Job;
16 class NodeManager;
17 
18 class TaskPool : public Object {
19 public:
20  TaskPool(NodeManager * pNM);
21  virtual ~TaskPool();
22 
23  // TODO __annotate__
24  void add(void * p, TaskState * t);
25  TaskState * find(void * p) const;
26  TaskState * findById(uint32_t id) const;
27  TaskState * findFreeTask() const;
28 
29  void changeState(uint32_t id, TaskState::State state);
30  uint32_t nSlotFree();
31 
32  bool terminateJob(Job * pJob);
33  bool handlePipe(void * pPipe);
34  void print(bool verbose = false) const;
35 
36 protected:
37  std::map<void *, TaskState *> mTasks{};
38  NodeManager * mpNodeManager = nullptr;
39 };
40 
41 } // namespace Salsa
bool handlePipe(void *pPipe)
Definition: TaskPool.cc:142
Base salsa TaskState class
Definition: TaskState.hh:16
NodeManager * mpNodeManager
Node manager.
Definition: TaskPool.hh:38
TaskPool(NodeManager *pNM)
Definition: TaskPool.cc:7
bool terminateJob(Job *pJob)
Definition: TaskPool.cc:99
NodeManager class
Definition: NodeManager.hh:20
Job class
Definition: Job.hh:16
void add(void *p, TaskState *t)
Definition: TaskPool.cc:24
TaskState * findFreeTask() const
Definition: TaskPool.cc:61
Definition: Actor.cc:2
void print(bool verbose=false) const
Definition: TaskPool.cc:128
virtual ~TaskPool()
Definition: TaskPool.cc:13
void changeState(uint32_t id, TaskState::State state)
Definition: TaskPool.cc:87
TaskState * find(void *p) const
Definition: TaskPool.cc:35
Base Salsa Object class
Definition: Object.hh:15
Base salsa TaskPool class
Definition: TaskPool.hh:18
State
Status of task.
Definition: TaskState.hh:19
std::map< void *, TaskState * > mTasks
List of task slots.
Definition: TaskPool.hh:37
TaskState * findById(uint32_t id) const
Definition: TaskPool.cc:48
uint32_t nSlotFree()
Definition: TaskPool.cc:74