00001 #ifndef ATLASAUDITOR_NAMEAUDITOR_H
00002 #define ATLASAUDITOR_NAMEAUDITOR_H
00003
00004 #include "GaudiKernel/Auditor.h"
00005 #include "GaudiKernel/Property.h"
00006
00007 class INamedInterface;
00008
00014 class NameAuditor:public Auditor {
00015 private:
00016 enum Action { BEFORE, AFTER };
00017
00018 public:
00019 NameAuditor(const std::string& name, ISvcLocator* pSvcLocator);
00020 virtual ~NameAuditor();
00021
00023
00024 virtual void before(StandardEventType evt, const std::string& caller);
00025
00026 virtual void before(StandardEventType evt, INamedInterface* caller) {
00027 if (caller) before(evt, caller->name());
00028 }
00029 virtual void before(CustomEventTypeRef evt, const std::string& caller) {
00030 i_doAudit(evt, caller, BEFORE);
00031 }
00032 virtual void before(CustomEventTypeRef evt, INamedInterface* caller) {
00033 if (caller) before(evt, caller->name());
00034 }
00036
00038
00039 virtual void after(StandardEventType evt, const std::string& caller, const StatusCode& sc);
00040
00041 virtual void after(StandardEventType evt, INamedInterface* caller, const StatusCode& sc) {
00042 if (caller) after(evt, caller->name(), sc);
00043 }
00044 virtual void after(CustomEventTypeRef evt, const std::string& caller, const StatusCode&) {
00045 i_doAudit(evt, caller, AFTER);
00046 }
00047 virtual void after(CustomEventTypeRef evt, INamedInterface* caller, const StatusCode& sc) {
00048 if (caller) after(evt, caller->name(), sc);
00049 }
00051
00052 private:
00054 void i_doAudit(const std::string& evt, const std::string& caller, Action action);
00055
00056 private:
00057 StringArrayProperty m_types;
00058
00059 };
00060
00061 #endif