00001 #ifndef GAUDIAUD_ALGERRORAUDITOR_H 00002 #define GAUDIAUD_ALGERRORAUDITOR_H 00003 00004 #include "GaudiKernel/Auditor.h" 00005 #include <map> 00006 #include <string> 00007 00008 class INamedInterface; 00009 class IMessageSvc; 00010 00016 class AlgErrorAuditor : virtual public Auditor { 00017 public: 00018 AlgErrorAuditor(const std::string& name, ISvcLocator* pSvcLocator); 00019 virtual ~AlgErrorAuditor(); 00020 00021 virtual StatusCode initialize(); 00022 virtual StatusCode finalize(); 00023 00024 virtual void beforeExecute(INamedInterface* alg); 00025 virtual void afterExecute(INamedInterface* alg, const StatusCode&); 00026 private: 00027 00028 BooleanProperty m_abort, m_throw; 00029 00030 void incrMap(const std::string& algName, int level); 00031 00032 int m_error; 00033 int m_fatal; 00034 00035 std::map <std::string, int> m_algMap[2]; 00036 00037 }; 00038 00039 #endif