00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00038 #ifndef JOBCMODULE_H
00039 #define JOBCMODULE_H
00040 #ifndef STRING
00041 #include <string>
00042 #define STRING
00043 #endif
00044 #ifndef REGISTRY_H
00045 #include "Registry/Registry.h"
00046 #define REGISTRY_H
00047 #endif
00048 #ifndef JOBCRESULT_H
00049 #include "JobControl/JobCResult.h"
00050 #endif
00051 #ifndef JOBCDIALOG_H
00052 #include "JobControl/JobCDialog.h"
00053 #endif
00054
00055 class MomNavigator;
00056 class JobCEnv;
00057 class JobCommand;
00058 class JobCPath;
00059 class JobCInputModule;
00060
00061
00062
00063 class JobCModule
00064 {
00065 public:
00066 JobCModule();
00067 virtual ~JobCModule();
00068
00069
00072 const char* GetName() const;
00073
00076 virtual JobCResult Ana(const MomNavigator *mom);
00077
00080 virtual JobCResult Reco(MomNavigator *mom);
00081
00084 virtual void BeginJob();
00087 virtual void EndJob();
00091 virtual void BeginFile();
00095 virtual void EndFile();
00099 virtual void BeginRun();
00103 virtual void EndRun();
00104
00108 Int_t GetCurrentRun() const;
00112 Int_t GetLastRun() const;
00113
00117 const char* GetCurrentFile(const char* streamname="*") const;
00121 const char* GetLastFile(const char* streamname="*") const;
00122
00135 virtual const Registry& DefaultConfig() const;
00136
00142 virtual void Config(const Registry& r);
00143
00147 virtual JobCResult Get(MomNavigator *mom);
00148
00152 virtual JobCResult Put(const MomNavigator *mom);
00153
00155 virtual void Cmd(const char* command);
00157 virtual void HandleCommand(JobCommand *command);
00159 virtual void Help();
00161 virtual void Report();
00163 virtual void Reset();
00164
00165
00166 void Init(const char* name);
00167 void Set(const char* paramlist);
00168 void Set(JobCDialog* d=0);
00169 virtual Registry& GetConfig();
00170
00171 bool SetUniqueName(const char* name);
00172 const char* GetUniqueName() const;
00173
00174 JobCPath* GetPath() { return fPath; }
00175 void SetPath(JobCPath* path) { fPath = path; }
00176
00177 private:
00178
00179 JobCInputModule* GetJobCInputModule() const;
00180
00181 std::string fName;
00182 Registry fConfig;
00183 JobCPath* fPath;
00184 };
00185
00186 #endif // JOBCMODULE_H
00187