20 #ifndef __EXECUTOR_HXX__
21 #define __EXECUTOR_HXX__
32 #pragma comment(lib,"winmm.lib")
99 void RunA(
Scheduler *graph,
int debug=0,
bool fromScratch=
true);
100 void RunW(
Scheduler *graph,
int debug=0,
bool fromScratch=
true) { RunB(graph, debug, fromScratch); }
101 void RunB(
Scheduler *graph,
int debug=0,
bool fromScratch=
true);
109 void setListOfBreakPoints(std::list<std::string> listOfBreakPoints);
110 std::list<std::string> getTasksToLoad();
111 bool setStepsToExecute(std::list<std::string> listToExecute);
112 bool resumeCurrentBreakPoint();
113 bool isNotFinished();
114 void stopExecution();
115 bool saveState(
const std::string& xmlFile);
117 int getNbOfThreads();
120 void setStopOnError(
bool dumpRequested=
false, std::string xmlFile=
"");
121 void unsetStopOnError();
127 bool checkBreakPoints();
130 void loadTasks(
const std::vector<Task *>& tasks,
const Executor *execInst);
131 void loadParallelTasks(
const std::vector<Task *>& tasks,
const Executor *execInst);
132 void launchTasks(
const std::vector<Task*>& tasks);
133 void launchTask(
Task *task);
135 void sleepWhileNoEventsFromAnyRunningTask();
136 void notifyEndOfThread(YACS::BASES::Thread *thread);
137 void traceExec(
Task *task,
const std::string& message,
const std::string& placement);
139 virtual void sendEvent(
const std::string& event);
140 static void FilterTasksConsideringContainers(std::vector<Task *>& tsks);
141 static std::string ComputePlacement(
Task *zeTask);
143 static void *functionForTaskLoad(
void *);
144 static void *functionForTaskExecution(
void *);