|
Gaudi Framework, version v22r0 |
| Home | Generated: 9 Feb 2011 |
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