00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef _DIAGNOSTICS_H_ 00004 #define _DIAGNOSTICS_H_ 00005 00006 #include <fesa-core/Diagnostic/FrameworkDiagnostics.h> 00007 #include <fesa-core/Diagnostic/DiagnosticUtils.h> 00008 00009 #include <boost/shared_ptr.hpp> 00010 00011 namespace fesa 00012 { 00013 00014 class AbstractUserDiagnostics; 00015 00019 class Diagnostics 00020 { 00021 public: 00027 Diagnostics(const FrameworkDiagnostics& frameworkDiagnostics, const boost::shared_ptr<AbstractUserDiagnostics>& userDiagnostics); 00031 ~Diagnostics(); 00037 const DiagnosticUtils::DiagnosticTopics& getTopics(DiagnosticUtils::Side side) const; 00043 void log(const std::string& topic, DiagnosticUtils::DiagnosticMessage& diagMsg); 00049 void enable(DiagnosticUtils::Side side, const std::string& topic) const; 00055 void disable(DiagnosticUtils::Side side, const std::string& topic) const; 00056 00057 private: 00058 FrameworkDiagnostics frameworkDiagnostics_; 00059 boost::shared_ptr<AbstractUserDiagnostics> userDiagnostics_; 00060 00061 Diagnostics(const Diagnostics& diagnostics); 00062 Diagnostics& operator=(const Diagnostics& diagnostics); 00063 }; 00064 00065 } // fesa 00066 00067 #endif // _DIAGNOSTICS_H_