Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

JobCMethod.h

Go to the documentation of this file.
00001 
00002 // $Id: JobCMethod.h,v 1.12 2002/08/29 15:17:15 rhatcher Exp $
00003 //
00004 // JobCMethod
00005 //
00006 // The methods that can be added to a reconstruction path. Note that
00007 // these are just the Get/Write/Ana and Reco Methods as the "status"
00008 // change methods will get called automatically. A JobCMethod object
00009 // ensures that the correct method of a JobCModude gets executed.
00010 // Note that the JobCModule class must have virtual methods for each
00011 // of the possible JobCMethods and vice versa.
00012 //
00013 // messier@huhepl.harvard.edu
00015 #ifndef JOBCMETHOD_H
00016 #define JOBCMETHOD_H
00017 
00018 #ifndef STRING
00019 #include <string>
00020 #define STRING
00021 #endif
00022 
00023 using namespace std;
00024 
00025 class MomNavigator;
00026 class JobCModule;
00027 class JobCResult;
00028 
00029 class JobCMethod 
00030 {
00031 public:
00032   // The list of methods that can be performed at a node
00033   typedef enum EMethod {
00034     kVoidMethod     =0,
00035     kGet            =1,
00036     kPut            =2,
00037     kAna            =3,
00038     kReco           =4
00039   } Method_t;
00040 
00041   static const JobCMethod* GetMethodByName(const string& name);
00042 
00043 public:
00044   JobCMethod(Method_t code);
00045 
00046   bool Exists(const JobCModule *module) const;
00047   const char* GetName() const;
00048   int operator==(Method_t rhs) const;
00049   int operator!=(Method_t rhs) const;
00050   
00051   JobCResult Execute(JobCModule *module, MomNavigator *mom) const;
00052 
00053 private:
00054   Method_t fMethodCode; // The Method code
00055 };
00056 
00057 #endif // JOBCMETHOD_H

Generated on Mon Feb 15 11:06:49 2010 for loon by  doxygen 1.3.9.1