|
Gaudi Framework, version v23r2 |
| Home | Generated: Thu Jun 28 2012 |
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 extends1<Service, IStatusCodeSvc> { 00015 00016 public: 00017 00018 virtual StatusCode initialize(); 00019 virtual StatusCode reinitialize(); 00020 virtual StatusCode finalize(); 00021 00022 virtual void regFnc(const std::string &func, const std::string &lib); 00023 virtual void list() const; 00024 virtual bool suppressCheck() const { return m_suppress.value() ; } 00025 00026 StatusCodeSvc( const std::string& name, ISvcLocator* svc ); 00027 00028 // Destructor. 00029 virtual ~StatusCodeSvc(); 00030 00031 private: 00032 00033 struct StatCodeDat { 00034 std::string fnc; 00035 std::string lib; 00036 int count; 00037 }; 00038 00039 00040 void parseFilter(const std::string& str, std::string& fnc, std::string& lib); 00041 void filterFnc(const std::string&); 00042 void filterLib(const std::string&); 00043 00044 // Allow SvcFactory to instantiate the service. 00045 friend class SvcFactory<StatusCodeSvc>; 00046 00047 StringArrayProperty m_pFilter; 00048 BooleanProperty m_abort, m_suppress, m_dict; 00049 00050 std::map<std::string,StatCodeDat> m_dat; 00051 std::set<std::string> m_filterfnc, m_filterlib; 00052 00053 00054 }; 00055 00056 #endif