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

JobCNode.h

Go to the documentation of this file.
00001 
00002 // $Id: JobCNode.h,v 1.22 2002/10/16 08:21:55 rhatcher Exp $
00003 //
00004 // A single node in a reconstruction path
00005 //
00006 // messier@huhepl.harvard.edu
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" // Needed for ClassDef and ClassImp macros
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   // These are the methods I expect will be used from eg. macros
00046   void FilterOn();
00047   void FilterOff();
00048   void ReverseFilter();
00049 
00050 public:
00051   // These I expect will be used internally
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 // Filter setting updated
00067   } Update_t;
00068   SigC::Signal2<void,JobCNode*,JobCNode::Update_t> SigUpdate;
00069 # endif
00070 private:
00071   // SigC::Signal2 derives from SignalBase which has a private operator=
00072   // CINT attempts to generate explicit assignment unless told not to do so
00073   JobCNode& operator= (const JobCNode&) { abort(); return *this; } // no assignment
00074 #endif
00075 
00076 private:
00077   void Init();
00078 
00079   JobCModule       *fModule;        // Which module?
00080   const JobCMethod *fMethod;        // Which method?
00081   bool              fFilterActive;  // Filter on this node?
00082   bool              fFilterReverse; // Reverse pass/fail?
00083   int               fNin;           // Number of events to enter this node
00084   int               fNpass;         // Number of events passed
00085   int               fNfail;         // Number of events failed
00086   long int          fUserTime;      // User clock ticks spent in this node
00087   long int          fSystemTime;    // System clock ticks spent in this node
00088 
00089   ClassDef(JobCNode,0) // a single node in a reconstruction path
00090 };
00091 
00092 #endif // JOBCNODE_H

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