Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

processManager.h

Go to the documentation of this file.
00001 #ifndef processManager_h
00002 #define processManager_h
00003 
00004 #include "Event/eventProcess.h"
00005 #include "Event/algorithmTask.h"
00006 #include "Event/serviceI.h"
00007 #include "Event/serverVI.h"
00008 #include "Event/cutSelection.h"
00009 
00010 //-----------------------------------------------
00012 
00052 //----------------------------------------------
00053 //             J.A Hernando, Santa Cruz 02/29/00
00054 //----------------------------------------------
00055 
00056 //######################################
00057 class processManager : public serviceI
00058 //######################################
00059 {
00060         friend class eventProcess;
00061         friend class algorithmTask;
00062 
00063 public:
00064 
00066         processManager();
00068         ~processManager();
00069         
00071         static processManager* instance() {return m_instance;}
00072 
00074         void runApplication() const {run(m_applicationName);}
00076         void run(std::string name) const {getAlgorithm(name)->run();}
00077 
00079         algorithmVI* getAlgorithm(std::string name) const;
00081         void addAlgorithm(std::string name, algorithmVI* alg);
00082 
00084         virtual void writeOut() const;
00085 
00086 protected:
00087 
00089         eventProcess* getEventProcess(std::string name) const;
00091         algorithmTask* getAlgorithmTask(std::string name) const;
00092 
00094         virtual void defineOption();
00096         virtual void setOption(std::string type, std::string name); //overwriten
00097 
00098 private:
00099         
00101         static processManager* m_instance;
00102 
00104         serverVI<algorithmVI>*    m_algorithms;
00106         serverVI<eventProcess>*   m_eventProcesses;
00108         serverVI<algorithmTask>*  m_algorithmTasks;
00109 
00111         algorithmTask* m_iniRun;
00113         algorithmTask*  m_endRun;
00115         eventProcess* m_runEvent;
00116 
00118         std::string m_applicationName;
00120         std::string m_eventProcessName;
00122         std::string m_algorithmTaskName;
00123 };
00124 
00125 #endif

Generated at Thu Jun 22 16:53:25 2000 for Centella Framework by doxygen 1.1.3 written by Dimitri van Heesch, © 1997-2000