00001 // -*- C++ -*- 00002 #ifndef TRIGCONFBASE_TRIGCONFMESSAGING_H 00003 #define TRIGCONFBASE_TRIGCONFMESSAGING_H 1 00004 00013 #include <string> 00014 #include "TrigConfBase/MsgStream.h" 00015 #include "TrigConfBase/MsgStreamMacros.h" 00016 00017 namespace TrigConf { 00018 00024 class TrigConfMessaging { 00025 public: 00026 00030 TrigConfMessaging (const std::string& name) : 00031 m_msg(name), 00032 m_name(name) 00033 {} 00034 00036 virtual ~TrigConfMessaging() {} 00037 00043 bool msgLvl (const MSGTC::Level lvl) const; 00044 00049 MsgStreamTC& msg() const; 00050 00055 MsgStreamTC& msg (const MSGTC::Level lvl) const; 00056 00057 private: 00058 TrigConfMessaging( const TrigConfMessaging& rhs ); //> not implemented 00059 TrigConfMessaging& operator=( const TrigConfMessaging& rhs ); //> not implemented 00060 00061 private: 00062 00064 mutable MsgStreamTC m_msg; 00065 std::string m_name; 00066 }; 00067 00068 inline bool TrigConfMessaging::msgLvl (const MSGTC::Level lvl) const 00069 { 00070 if (m_msg.level() <= lvl) { 00071 m_msg << lvl; 00072 return true; 00073 } 00074 else { 00075 return false; 00076 } 00077 } 00078 00079 inline MsgStreamTC& TrigConfMessaging::msg() const 00080 { 00081 return m_msg; 00082 } 00083 00084 inline MsgStreamTC& TrigConfMessaging::msg (const MSGTC::Level lvl) const 00085 { 00086 return m_msg << lvl; 00087 } 00088 00089 } // namespace TrigConf 00090 00091 #endif