#include <getMessageSvc.h>
Collaboration diagram for Dyb::IMessageSvcHolder:
Public Member Functions | |
IMessageSvcHolder () | |
will take the IMessageSvc* lazily from getMessageSvc() in get() Slow, but useful for classes without direct access to IMessageSvc* | |
IMessageSvcHolder (const Options::CreateOptions o) | |
allows to get the IMessageSvc immediately | |
IMessageSvcHolder (IMessageSvc *ims) | |
IMessageSvcHolder (const IMessageSvcHolder &) | |
behaves like the constructor taking an IMessageSvc * | |
IMessageSvcHolder & | operator= (const IMessageSvcHolder &) |
~IMessageSvcHolder () | |
releases the IMessageSvc | |
IMessageSvc * | get () const |
upon first access sets m_ims as needed | |
operator const IMessageSvc * () const | |
conversion to IMessageSvc*, same as get | |
operator IMessageSvc * () | |
conversion to IMessageSvc*, same as get | |
Private Attributes | |
IMessageSvc * | m_ims |
Definition at line 34 of file getMessageSvc.h.
Dyb::IMessageSvcHolder::IMessageSvcHolder | ( | ) | [inline] |
will take the IMessageSvc* lazily from getMessageSvc() in get() Slow, but useful for classes without direct access to IMessageSvc*
Definition at line 38 of file getMessageSvc.h.
00038 : m_ims() {}
IMessageSvcHolder::IMessageSvcHolder | ( | const Options::CreateOptions | o | ) |
allows to get the IMessageSvc immediately
o,: | if o is Dyb::Options::Eager it will create a MessageSvc instance there and then. |
Definition at line 43 of file getMessageSvc.cc.
00043 : 00044 m_ims(0) 00045 { 00046 if (opt == Dyb::Options::Eager) m_ims = getMessageSvc(opt); 00047 }
IMessageSvcHolder::IMessageSvcHolder | ( | IMessageSvc * | ims | ) |
IMessageSvcHolder::IMessageSvcHolder | ( | const IMessageSvcHolder & | ) |
behaves like the constructor taking an IMessageSvc *
Definition at line 27 of file getMessageSvc.cc.
00027 : 00028 m_ims(rhs.m_ims) 00029 { 00030 if (m_ims) m_ims->addRef(); //take ownership till we go out of scope 00031 }
IMessageSvcHolder::~IMessageSvcHolder | ( | ) |
IMessageSvcHolder & IMessageSvcHolder::operator= | ( | const IMessageSvcHolder & | ) |
Definition at line 34 of file getMessageSvc.cc.
00034 { 00035 if (this != & rhs && m_ims != rhs.m_ims) { 00036 if (m_ims) m_ims->release(); //give up our IMessageSvc* 00037 m_ims = rhs.m_ims; 00038 if (m_ims) m_ims->addRef(); //take ownership till we go out of scope 00039 } 00040 return *this; 00041 }
IMessageSvc * IMessageSvcHolder::get | ( | ) | const |
upon first access sets m_ims as needed
Definition at line 54 of file getMessageSvc.cc.
00054 { 00055 if (!m_ims) m_ims = getMessageSvc(); 00056 return m_ims; 00057 }
Dyb::IMessageSvcHolder::operator const IMessageSvc * | ( | ) | const [inline] |
conversion to IMessageSvc*, same as get
Definition at line 61 of file getMessageSvc.h.
00061 { return this->get(); }
Dyb::IMessageSvcHolder::operator IMessageSvc * | ( | ) | [inline] |
conversion to IMessageSvc*, same as get
Definition at line 63 of file getMessageSvc.h.
00063 { return this->get(); }
IMessageSvc* Dyb::IMessageSvcHolder::m_ims [mutable, private] |
Definition at line 65 of file getMessageSvc.h.