| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# AlgContextAuditor.h

Go to the documentation of this file.

    00001 // $Id: AlgContextAuditor.h,v 1.4 2007/05/24 13:49:20 hmd Exp $
    00002 // ============================================================================
    00003 // CVS tag $Name: v8r7 $, 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 // ============================================================================