00001 // $Id: AlgContextAuditor.h,v 1.4 2007/05/24 13:49:20 hmd Exp $ 00002 // ============================================================================ 00003 // CVS tag $Name: GAUDI_v20r4-pre $, version $Revision: 1.4 $ 00004 // ============================================================================ 00005 // $Log: AlgContextAuditor.h,v $ 00006 // Revision 1.4 2007/05/24 13:49:20 hmd 00007 // ( Vanya Belyaev) patch #1171. The enhancement of existing Algorithm Context Service 00008 // is the primary goal of the proposed patch. The existing 00009 // AlgContextSvc is not safe with respect to e.g. Data-On-Demand 00010 // service or to operations with subalgorithms. The patched service 00011 // essentially implements the queue of executing algorithms, thus the 00012 // problems are eliminiated. In addition the enriched interface 00013 // provides the access to the whole queue of executing algorithms. 00014 // 00015 // ============================================================================ 00016 #ifndef GAUDIAUD_ALGCONTEXTAUDITOR_H 00017 #define GAUDIAUD_ALGCONTEXTAUDITOR_H 00018 // ============================================================================ 00019 // Incldue files 00020 // ============================================================================ 00021 // GaudiKernel 00022 // ============================================================================ 00023 #include "GaudiKernel/Auditor.h" 00024 #include "GaudiKernel/INamedInterface.h" 00025 #include "GaudiKernel/IAlgorithm.h" 00026 #include "GaudiKernel/SmartIF.h" 00027 // ============================================================================ 00028 // Forward declarations 00029 // ============================================================================ 00030 class INamedInterface ; 00031 class IAlgContextSvc ; 00032 // ============================================================================ 00039 class AlgContextAuditor 00040 : public Auditor 00041 { 00042 public: 00043 // IAuditor implementation 00044 virtual void beforeInitialize ( INamedInterface* a ) ; 00045 virtual void afterInitialize ( INamedInterface* a ) ; 00046 // 00047 virtual void beforeExecute ( INamedInterface* a ) ; 00048 virtual void afterExecute ( INamedInterface* a , 00049 const StatusCode& s ) ; 00050 // 00051 virtual void beforeFinalize ( INamedInterface* a ) ; 00052 virtual void afterFinalize ( INamedInterface* a ) ; 00053 public: 00055 AlgContextAuditor 00056 ( const std::string& name , 00057 ISvcLocator* pSvc ) ; 00059 virtual ~AlgContextAuditor () ; 00061 virtual StatusCode initialize () ; 00063 virtual StatusCode finalize () ; 00064 private: 00065 // the default constructor is disabled 00066 AlgContextAuditor () ; 00067 // copy constructor is disabled 00068 AlgContextAuditor ( const AlgContextAuditor& ) ; 00069 // assigenement operator is disabled 00070 AlgContextAuditor& operator=( const AlgContextAuditor& ) ; 00071 private: 00072 // the pointer to Algorithm Context Service 00073 IAlgContextSvc* m_svc ; 00074 } ; 00075 00076 // ============================================================================ 00077 // The END 00078 // ============================================================================ 00079 #endif // GAUDIAUD_ALGCONTEXTAUDITOR_H 00080 // ============================================================================