| # Gaudi Framework, version v22r0 |

Home |  | Generated: 9 Feb 2011

# AlgContextSvc.h

Go to the documentation of this file.

    00001 // $Id: AlgContextSvc.h,v 1.4 2007/05/24 13:49:47 hmd Exp $
    00002 // ============================================================================
    00003 #ifndef GAUDISVC_ALGCONTEXTSVC_H
    00004 #define GAUDISVC_ALGCONTEXTSVC_H 1
    00005 // ============================================================================
    00006 // Include files
    00007 // ============================================================================
    00008 // GaudiKernel
    00009 // ============================================================================
    00010 #include "GaudiKernel/StatusCode.h"
    00011 #include "GaudiKernel/IAlgContextSvc.h"
    00012 #include "GaudiKernel/IAlgorithm.h"
    00013 #include "GaudiKernel/IIncidentListener.h"
    00014 #include "GaudiKernel/Service.h"
    00015 // ============================================================================
    00016 // Forward declarations
    00017 // ============================================================================
    00018 template <class TYPE> class SvcFactory;
    00019 class IIncidentSvc ;
    00020 // ============================================================================
    00028 class AlgContextSvc: public extends2<Service, IAlgContextSvc, IIncidentListener>
    00029 {
    00030 public:
    00032   friend class SvcFactory<AlgContextSvc>;
    00033 public:
    00035   virtual StatusCode     setCurrentAlg  ( IAlgorithm* a ) ;
    00037   virtual StatusCode   unSetCurrentAlg  ( IAlgorithm* a ) ;
    00039   virtual IAlgorithm*       currentAlg  () const ;
    00041   virtual const IAlgContextSvc::Algorithms& algorithms  () const
    00042   { return m_algorithms ; }
    00043 public:
    00045   virtual void handle ( const Incident& ) ;
    00046 public:
    00048   virtual StatusCode initialize () ;
    00050   virtual StatusCode finalize   () ;
    00051 public:
    00053   AlgContextSvc
    00054   ( const std::string& name ,
    00055     ISvcLocator*       svc  ) ;
    00057   virtual ~AlgContextSvc();
    00058 private:
    00059   // default constructor is disabled
    00060   AlgContextSvc () ;
    00061   // copy constructor is disabled
    00062   AlgContextSvc ( const AlgContextSvc& );
    00063   // assignment operator is disabled
    00064   AlgContextSvc& operator=( const AlgContextSvc& );
    00065 private:
    00066   // the stack of current algorithms
    00067   IAlgContextSvc::Algorithms m_algorithms ;
    00068   // pointer to Incident Service
    00069   IIncidentSvc*              m_inc        ;
    00070   // flag to perform more checking
    00071   bool                       m_check      ;
    00072 } ;
    00073
    00074 // ============================================================================
    00075 // The END
    00076 // ============================================================================
    00077 #endif // GAUDISVC_ALGCONTEXTSVC_H
    00078 // ============================================================================
    00079

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines