salsa 0.7.1
Loading...
Searching...
No Matches
TaskPool.hh
1#pragma once
2
3#include "TaskState.hh"
4
5namespace Salsa {
14
15class Job;
16class NodeManager;
17
18class TaskPool : public Object {
19public:
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::EState state);
30 uint32_t nSlotFree();
31
32 bool terminateJob(Job * pJob);
33 bool handlePipe(void * pPipe);
34 void print(bool verbose = false) const;
35
36protected:
37 std::map<void *, TaskState *> mTasks{};
39};
40
41} // namespace Salsa
Job class.
Definition Job.hh:16
NodeManager class.
Base Salsa Object class.
Definition Object.hh:15
Base salsa TaskPool class.
Definition TaskPool.hh:18
TaskState * find(void *p) const
Definition TaskPool.cc:35
TaskPool(NodeManager *pNM)
Definition TaskPool.cc:7
void print(bool verbose=false) const
Definition TaskPool.cc:128
NodeManager * mpNodeManager
Node manager.
Definition TaskPool.hh:38
void changeState(uint32_t id, TaskState::EState state)
Definition TaskPool.cc:87
uint32_t nSlotFree()
Definition TaskPool.cc:74
void add(void *p, TaskState *t)
Definition TaskPool.cc:24
TaskState * findFreeTask() const
Definition TaskPool.cc:61
std::map< void *, TaskState * > mTasks
List of task slots.
Definition TaskPool.hh:37
bool handlePipe(void *pPipe)
Definition TaskPool.cc:142
bool terminateJob(Job *pJob)
Definition TaskPool.cc:99
virtual ~TaskPool()
Definition TaskPool.cc:13
TaskState * findById(uint32_t id) const
Definition TaskPool.cc:48
Base salsa TaskState class.
Definition TaskState.hh:16
EState
Status of task.
Definition TaskState.hh:19