00001 #ifndef processManager_h 00002 #define processManager_h 00003 00004 #include "Event/serviceI.h" 00005 #include "Event/serverVI.h" 00006 00007 #include "Event/eventTask.h" 00008 #include "Event/algorithmTask.h" 00009 #include "Event/algConditionalTask.h" 00010 00011 //----------------------------------------------- 00013 00059 //---------------------------------------------- 00060 // J.A Hernando, Santa Cruz 02/29/00 00061 //---------------------------------------------- 00062 00063 //###################################### 00064 class processManager : public serviceI 00065 //###################################### 00066 { 00067 public: 00068 00070 processManager(); 00072 virtual ~processManager(); 00073 00075 static processManager* instance() {return m_instance;} 00076 00078 void runApplication() const {run(m_applicationName);} 00080 void run(std::string name) const {getAlgorithm(name)->run();} 00081 00083 algorithmVI* getAlgorithm(std::string name) const; 00085 void addAlgorithm(std::string name, algorithmVI* alg); 00086 00088 algorithmTask* getAlgorithmTask(std::string name) const; 00090 void addAlgorithmTask(std::string name, algorithmTask* alg); 00091 00093 eventTask* getEventTask(std::string name) const; 00095 void addEventTask(std::string name, eventTask* evt); 00096 00098 algConditionalTask* getAlgConditionalTask(std::string name) const; 00100 void addAlgConditionalTask(std::string name, algConditionalTask* alg); 00101 00103 virtual void writeOut() const; 00104 00105 protected: 00106 00108 virtual void defineOption(); 00110 virtual void setOption(std::string type, std::string name); //overwriten 00111 00112 private: 00113 00115 static processManager* m_instance; 00116 00118 serverVI<algorithmVI>* m_algorithms; 00120 serverVI<eventTask>* m_eventTasks; 00122 serverVI<algorithmTask>* m_algorithmTasks; 00124 serverVI<algConditionalTask>* m_algConditionalTasks; 00125 00127 std::string m_applicationName; 00128 00130 std::string m_eventTaskName; 00132 std::string m_algorithmTaskName; 00134 std::string m_algConditionalTaskName; 00135 }; 00136 00137 #endif