![]() |
|
|
Generated: 8 Jan 2009 |
00001 00002 #ifndef GAUDISVC_STATUSCODESVC_H 00003 #define GAUDISVC_STATUSCODESVC_H 00004 00005 #include "GaudiKernel/Service.h" 00006 #include "GaudiKernel/IStatusCodeSvc.h" 00007 00008 #include <string> 00009 #include <map> 00010 #include <set> 00011 00012 template <class TYPE> class SvcFactory; 00013 00014 class StatusCodeSvc: public Service, 00015 virtual public IStatusCodeSvc { 00016 00017 public: 00018 00019 virtual StatusCode initialize(); 00020 virtual StatusCode reinitialize(); 00021 virtual StatusCode finalize(); 00022 00023 // Query the interfaces. 00024 virtual StatusCode queryInterface( const InterfaceID& riid, 00025 void** ppvInterface ); 00026 00027 virtual void regFnc(const std::string &func, const std::string &lib); 00028 virtual void list() const; 00029 virtual bool suppressCheck() const { return m_suppress.value() ; } 00030 00031 StatusCodeSvc( const std::string& name, ISvcLocator* svc ); 00032 00033 // Destructor. 00034 virtual ~StatusCodeSvc(); 00035 00036 private: 00037 00038 struct StatCodeDat { 00039 std::string fnc; 00040 std::string lib; 00041 int count; 00042 }; 00043 00044 00045 void filterFnc(std::string); 00046 00047 // Allow SvcFactory to instantiate the service. 00048 friend class SvcFactory<StatusCodeSvc>; 00049 00050 StringArrayProperty m_pFilter; 00051 BooleanProperty m_abort; 00052 BooleanProperty m_suppress; 00053 00054 std::map<std::string,StatCodeDat> m_dat; 00055 std::set<std::string> m_filter; 00056 00057 00058 }; 00059 00060 #endif