00001 00002 // $Id: JobController.h,v 1.15 2003/08/26 23:04:23 messier Exp $ 00003 // 00004 // Provide a framework for running simulation and reconstruction 00005 // 00006 // messier@huhepl.harvard.edu 00008 #ifndef JOBCONTROLLER_H 00009 #define JOBCONTROLLER_H 00010 #ifndef LIST 00011 #include <list> 00012 #define LIST 00013 #endif 00014 #ifndef STRING 00015 #include <string> 00016 #define STRING 00017 #endif 00018 #ifndef MOMNAVIGATOR_H 00019 #include "MinosObjectMap/MomNavigator.h" 00020 #endif 00021 00022 class JobCEnv; 00023 class JobCPathRegistry; 00024 class JobCInterpreter; 00025 class JobCommand; 00026 00027 //...................................................................... 00028 00029 class JobController 00030 { 00031 public: 00032 static JobController* GetMotherController(); 00033 00034 JobController(); 00035 JobController(int argc, char** argv); 00036 ~JobController(); 00037 00038 JobController& operator<<(const char *); 00039 void operator()(const char *c); 00040 00041 JobCEnv* GetJobEnv() const; 00042 JobCPathRegistry* GetPathRegistry() const; 00043 MomNavigator* GetMom(); 00044 int Run(); 00045 00046 private: 00047 // Methods 00048 void BuildSystemPath(); 00049 bool ControllerCommand(JobCommand *cmd); 00050 void HandleCommand(const char *cmd); 00051 void HandleCommand(JobCommand *cmd); 00052 void Help(JobCommand *cmd); 00053 void Init(); 00054 void ProcessCommands(); 00055 void ReadMacroFile(const char *filename); 00056 00057 // Class data 00058 static JobController* fMotherController; // First jc instantiated 00059 static const char* fSystemPathName; // Name of the jc system path 00060 // Member data 00061 JobCPathRegistry* fPathRegistry; // The set of paths connected to controller 00062 JobCInterpreter* fInterp; // Command interpreter 00063 MomNavigator fMom; // "The event" records 00064 }; 00065 #endif // JOBCONTROLLER_H
1.3.9.1