|
Gaudi Framework, version v22r0 |
| Home | Generated: 9 Feb 2011 |
00001 // $Id: AlgContextAuditor.h,v 1.4 2007/05/24 13:49:20 hmd Exp $ 00002 // ============================================================================ 00003 // CVS tag $Name: $, 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 // Include files 00020 // ============================================================================ 00021 // GaudiKernel 00022 // ============================================================================ 00023 #include "GaudiKernel/Auditor.h" 00024 #include "GaudiKernel/IAlgorithm.h" 00025 #include "GaudiKernel/SmartIF.h" 00026 // ============================================================================ 00027 // Forward declarations 00028 // ============================================================================ 00029 class IAlgContextSvc ; 00030 // ============================================================================ 00037 class AlgContextAuditor 00038 : public Auditor 00039 { 00040 public: 00041 // IAuditor implementation 00042 virtual void beforeInitialize ( INamedInterface* a ) ; 00043 virtual void afterInitialize ( INamedInterface* a ) ; 00044 // 00045 virtual void beforeExecute ( INamedInterface* a ) ; 00046 virtual void afterExecute ( INamedInterface* a , 00047 const StatusCode& s ) ; 00048 // 00049 virtual void beforeFinalize ( INamedInterface* a ) ; 00050 virtual void afterFinalize ( INamedInterface* a ) ; 00051 public: 00053 AlgContextAuditor 00054 ( const std::string& name , 00055 ISvcLocator* pSvc ) ; 00057 virtual ~AlgContextAuditor () ; 00059 virtual StatusCode initialize () ; 00061 virtual StatusCode finalize () ; 00062 private: 00063 // the default constructor is disabled 00064 AlgContextAuditor () ; 00065 // copy constructor is disabled 00066 AlgContextAuditor ( const AlgContextAuditor& ) ; 00067 // assigenement operator is disabled 00068 AlgContextAuditor& operator=( const AlgContextAuditor& ) ; 00069 private: 00070 // the pointer to Algorithm Context Service 00071 IAlgContextSvc* m_svc ; 00072 } ; 00073 00074 // ============================================================================ 00075 // The END 00076 // ============================================================================ 00077 #endif // GAUDIAUD_ALGCONTEXTAUDITOR_H 00078 // ============================================================================