![]() |
|
|
Generated: 8 Jan 2009 |
00001 // $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiSvc/src/AuditorSvc/AuditorSvc.h,v 1.10 2008/10/27 19:22:21 marcocle Exp $ 00002 #ifndef AuditorSvc_AuditorSvc_H 00003 #define AuditorSvc_AuditorSvc_H 00004 00005 // Include Files 00006 #include "GaudiKernel/Service.h" 00007 #include "GaudiKernel/IAuditorSvc.h" 00008 #include <list> 00009 #include <vector> 00010 00011 class INamedInterface; 00012 00013 //------------------------------------------------------------------ 00014 // 00015 // ClassName: AuditorSvc 00016 // 00017 // Description: This service manages Auditors. 00018 // Auditors can be inserted in the system to audit the Algorithms is 00019 // in their functions. 00020 //------------------------------------------------------------------ 00021 class AuditorSvc : public Service, virtual public IAuditorSvc { 00022 00023 public: 00024 00025 // Typedefs 00026 typedef std::list<IAuditor*> ListAudits; 00027 typedef std::vector<std::string> VectorName; 00028 00029 // Inherited Service overrides: 00030 // 00031 // Initialise the service. 00032 virtual StatusCode initialize(); 00033 00034 // Finalise the service. 00035 virtual StatusCode finalize(); 00036 00037 // Query the interfaces. 00038 // Input: riid, Requested interface ID 00039 // ppvInterface, Pointer to requested interface 00040 // Return: StatusCode indicating SUCCESS or FAILURE. 00041 // N.B. Don't forget to release the interface after use!!! 00042 virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface ); 00043 00044 // IAuditorSvc interfaces overwrite 00045 // 00047 00048 virtual void before(StandardEventType, INamedInterface*); 00049 virtual void before(StandardEventType, const std::string&); 00050 00051 virtual void before(CustomEventTypeRef, INamedInterface*); 00052 virtual void before(CustomEventTypeRef, const std::string&); 00053 00054 virtual void after(StandardEventType, INamedInterface*, const StatusCode&); 00055 virtual void after(StandardEventType, const std::string&, const StatusCode&); 00056 00057 virtual void after(CustomEventTypeRef, INamedInterface*, const StatusCode&); 00058 virtual void after(CustomEventTypeRef, const std::string&, const StatusCode&); 00059 00060 // inform Auditors that the initialize() is about to be called 00061 virtual void beforeInitialize(INamedInterface* ini); 00062 // inform Auditors that the initialize() has been called 00063 virtual void afterInitialize(INamedInterface* ini); 00064 00065 // inform Auditors that the reinitialize() is about to be called 00066 virtual void beforeReinitialize(INamedInterface* ini); 00067 // inform Auditors that the reinitialize() has been called 00068 virtual void afterReinitialize(INamedInterface* ini); 00069 00070 // inform Auditors that the execute() is about to be called 00071 virtual void beforeExecute(INamedInterface* ini); 00072 // inform Auditors that the execute() has been called 00073 virtual void afterExecute(INamedInterface* ini, const StatusCode& ); 00074 00075 // inform Auditors that the beginRun() is about to be called 00076 virtual void beforeBeginRun(INamedInterface* ini); 00077 // inform Auditors that the beginRun() has been called 00078 virtual void afterBeginRun(INamedInterface* ini); 00079 00080 // inform Auditors that the endRun() is about to be called 00081 virtual void beforeEndRun(INamedInterface* ini); 00082 // inform Auditors that the endRun() has been called 00083 virtual void afterEndRun(INamedInterface* ini); 00084 00085 // inform Auditors that the finalize() is about to be called 00086 virtual void beforeFinalize(INamedInterface* ini); 00087 // inform Auditors that the finalize() has been called 00088 virtual void afterFinalize(INamedInterface* ini); 00089 00090 virtual bool isEnabled() const ; 00091 00092 virtual StatusCode sysInitialize(); 00093 virtual StatusCode sysFinalize(); 00094 00095 // management functionality: retrieve an Auditor 00096 virtual IAuditor* getAuditor( const std::string& name ); 00097 00098 // Standard Constructor. 00099 // Input: name String with service name 00100 // Input: svc Pointer to service locator interface 00101 AuditorSvc( const std::string& name, ISvcLocator* svc ); 00102 00103 // Destructor. 00104 virtual ~AuditorSvc(); 00105 00106 private: 00107 // management helper 00108 IAuditor* newAuditor_( MsgStream&, const std::string& ); 00109 IAuditor* findAuditor_( const std::string& ); 00110 StatusCode syncAuditors_(); 00111 00112 // List of auditor names 00113 VectorName m_audNameList; 00114 00115 // Manager list of Auditors 00116 ListAudits m_pAudList; 00117 00118 // To disable alltogether the auditors 00119 bool m_isEnabled; 00120 }; 00121 00122 #endif