]> SALOME platform Git repositories - modules/yacs.git/blob - src/engine/Scheduler.hxx
Salome HOME
copy tag mergefrom_BR_V0_1_CC_Salome_04oct07
[modules/yacs.git] / src / engine / Scheduler.hxx
1
2 #ifndef __SCHEDULER_HXX__
3 #define __SCHEDULER_HXX__
4
5 #include "DeploymentTree.hxx"
6 #include "define.hxx"
7
8 #include <string>
9 #include <vector>
10
11 namespace YACS
12 {
13   namespace ENGINE
14   {
15     class Task;
16     
17     class Scheduler
18     {
19     public:
20       virtual void init(bool start=true) = 0;
21       virtual bool isFinished() = 0;
22       virtual void exUpdateState() = 0;
23       virtual std::string getName() const = 0;
24       virtual std::string getTaskName(Task *task) const = 0;
25       virtual std::vector<Task *> getNextTasks(bool& isMore) = 0;
26       virtual void selectRunnableTasks(std::vector<Task *>& tasks) = 0;
27       virtual void notifyFrom(const Task *sender, YACS::Event event) = 0;
28       //Placement methods
29       virtual DeploymentTree getDeploymentTree() const = 0;
30       virtual bool isPlacementPredictableB4Run() const = 0;
31       virtual bool isMultiplicitySpecified(unsigned& value) const = 0;
32       virtual void forceMultiplicity(unsigned value) = 0;
33     };
34   }
35 }
36
37 #endif