00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef _FRAMEWORK_DIAGNOSTICS_H_ 00004 #define _FRAMEWORK_DIAGNOSTICS_H_ 00005 00006 #include <fesa-core/Diagnostic/DiagnosticUtils.h> 00007 00008 #include <map> 00009 00010 namespace fesa 00011 { 00012 00016 class FrameworkDiagnostics 00017 { 00018 public: 00022 FrameworkDiagnostics(); 00026 ~FrameworkDiagnostics(); 00031 const DiagnosticUtils::DiagnosticTopics& getTopics() const; 00032 // const CMW::Log::Logger& getLogger(const std::string& topic) const; 00038 void log(const std::string& topic, DiagnosticUtils::DiagnosticMessage& diagMsg); 00043 void enable(const std::string& topic) const; 00048 void disable(const std::string& topic) const; 00049 00050 private: 00051 DiagnosticUtils::DiagnosticTopics topics_; 00052 std::map<std::string, int64_t> messageCounters_; 00053 00054 // FrameworkDiagnostics(const FrameworkDiagnostics& diagnostics); 00055 FrameworkDiagnostics& operator=(const FrameworkDiagnostics& diagnostics); 00056 }; 00057 00058 } // fesa 00059 00060 #endif // _FRAMEWORK_DIAGNOSTICS_H_