00001
00002
00003
00004
00005
00006
00008 #ifndef JOBCNODE_H
00009 #define JOBCNODE_H
00010 #ifndef IOSFWD
00011 #include <iosfwd>
00012 #define IOSFWD
00013 #endif
00014 #ifndef __CINT__
00015 # ifdef SITE_HAS_SIGC
00016 # ifndef SIGNAL_H
00017 # include "sigc++/signal.h"
00018 # define SIGNAL_H
00019 # endif
00020 # endif
00021 #endif
00022 #ifndef STDLIB_H
00023 #include <stdlib.h>
00024 #define STTDLIB_H
00025 #endif
00026 #ifndef ROOT_Rtypes
00027 #if !defined(__CINT__) || defined(__MAKECINT__)
00028 #include "Rtypes.h"
00029 #endif
00030 #endif
00031
00032 class MomNavigator;
00033 class JobCModule;
00034 class JobCMethod;
00035 class JobCResult;
00036
00037 class JobCNode
00038 {
00039 friend std::ostream& operator<<(std::ostream& os, const JobCNode& n);
00040 public:
00041 JobCNode();
00042 JobCNode(JobCModule *module, const JobCMethod *method);
00043 virtual ~JobCNode();
00044
00045
00046 void FilterOn();
00047 void FilterOff();
00048 void ReverseFilter();
00049
00050 public:
00051
00052 JobCResult Execute(MomNavigator *mom);
00053
00054 bool MatchModuleMethod(const char* mod, const char* meth);
00055
00056 JobCMethod GetMethod() const;
00057 JobCModule* GetModule() const;
00058
00059 void SetModule(JobCModule* module);
00060 void SetMethod(JobCMethod* method);
00061
00062 #ifndef __CINT__
00063 # ifdef SITE_HAS_SIGC
00064 public:
00065 typedef enum EUpdate {
00066 kFilter
00067 } Update_t;
00068 SigC::Signal2<void,JobCNode*,JobCNode::Update_t> SigUpdate;
00069 # endif
00070 private:
00071
00072
00073 JobCNode& operator= (const JobCNode&) { abort(); return *this; }
00074 #endif
00075
00076 private:
00077 void Init();
00078
00079 JobCModule *fModule;
00080 const JobCMethod *fMethod;
00081 bool fFilterActive;
00082 bool fFilterReverse;
00083 int fNin;
00084 int fNpass;
00085 int fNfail;
00086 long int fUserTime;
00087 long int fSystemTime;
00088
00089 ClassDef(JobCNode,0)
00090 };
00091
00092 #endif // JOBCNODE_H