5 #ifndef CMR_AUTO_REF_DEFINED
6 #define CMR_AUTO_REF_DEFINED
14 inline void AutoRefBase::attach()
21 inline void AutoRefBase::release()
30 inline void IAutoRefBase::attach()
37 inline void IAutoRefBase::release()
137 if ((
void*)
this != (
void*)&a)
149 if ((
void*)
this != (
void*)&a)
160 set_(dynamic_cast<E*>(p));
166 operator bool ()
const
185 set_(dynamic_cast<E*>(E::create().
get_()));
194 set_(dynamic_cast<E*>(E::bind(s).
get_()));
203 set_(dynamic_cast<E*>(E::bind().
get_()));
240 return get() == a.
get();
244 return get() != a.
get();
248 return get() < a.
get();
289 if ((
void*)
this != (
void*)&a)
297 if ((
void*)
this != (
void*)&a)
306 set_(dynamic_cast<E*>(p));
309 operator bool ()
const
322 set_(dynamic_cast<E*>(E::create().
get_()));
327 set_(dynamic_cast<E*>(E::bind().
get_()));
332 set_(dynamic_cast<E*>(E::bind(s).
get_()));
350 return get() == a.
get();
354 return get() != a.
get();
364 #ifdef CMR_BSTREAM_INCLUDED
366 commore::OBStream& operator << (commore::OBStream& o, const commore::AutoRef<X>& p)
373 commore::OBStream& operator << (commore::OBStream& o, const commore::IAutoRef<X>& p)
bool bind(const AChar *s)
Definition: AutoRef.h:330
Definition: RefObject.h:24
bool bind(const AChar *s)
Definition: AutoRef.h:192
AutoRef(bool)
Definition: AutoRef.h:105
IAutoRef(const IAutoRefBase &a)
Definition: AutoRef.h:285
Definition: AutoRefBase.h:102
void set_(RefObject *p)
Definition: AutoRefBase.h:134
AutoRef(const AutoRef &a)
Definition: AutoRef.h:123
AutoRef(const AutoRefBase &a)
Definition: AutoRef.h:129
E & operator*() const
Definition: AutoRef.h:217
Definition: AutoRefBase.h:18
char AChar
Definition: Type.h:65
static AutoRefBase lookup_create(const AChar *factory_name, const AChar *s, const AutoRefBase &def)
Definition: AutoRef.cpp:149
void unbind()
Definition: AutoRef.h:260
bool bind()
Definition: AutoRef.h:325
virtual void release()
Definition: AutoRef.cpp:53
bool operator==(const AutoRef &a) const
Definition: AutoRef.h:238
virtual void nested_release()
Definition: AutoRef.cpp:87
E * get() const
Definition: AutoRef.h:209
virtual void attach()
Definition: AutoRef.cpp:37
bool create()
Definition: AutoRef.h:320
bool create(const AChar *s)
Definition: AutoRef.h:315
IAutoRef & operator=(const IAutoRef &a)
Definition: AutoRef.h:287
IAutoRef(bool)
Definition: AutoRef.h:277
E * operator->() const
Definition: AutoRef.h:224
bool operator!=(const AutoRef &a) const
Definition: AutoRef.h:242
bool operator!=(const IAutoRef &a) const
Definition: AutoRef.h:352
AutoRef & operator=(const AutoRef &a)
Definition: AutoRef.h:135
bool create(const AChar *s)
Definition: AutoRef.h:175
Definition: RefObject.h:89
bool operator<(const AutoRef &a) const
Definition: AutoRef.h:246
bool operator==(const IAutoRef &a) const
Definition: AutoRef.h:348
IAutoRef()
Definition: AutoRef.h:273
AutoRef is a smart pointer on RefObject objects. AutoRef is templatized with the type of the pointed ...
Definition: AutoRef.h:86
IAutoRef(const IAutoRef &a)
Definition: AutoRef.h:283
bool is_bound() const
Definition: AutoRef.h:253
IAutoRef(RefObject *p)
Definition: AutoRef.h:281
bool is_bound() const
Definition: AutoRef.h:356
RefObject * get_() const
Definition: AutoRefBase.h:65
AutoRef(E *p)
Definition: AutoRef.h:111
void set_(RefObject *p)
Definition: AutoRefBase.h:72
Definition: IOBStream.h:166
AutoRef(const AChar *s)
Definition: AutoRef.h:99
AutoRef(RefObject *p)
Definition: AutoRef.h:117
AutoRef()
Definition: AutoRef.h:93
IAutoRef(E *p)
Definition: AutoRef.h:279
E * operator->() const
Definition: AutoRef.h:340
E * get() const
Definition: AutoRef.h:335
RefObject * get_() const
Definition: AutoRefBase.h:130
Definition: AutoRef.h:270
virtual void nested_attach()
Definition: AutoRef.cpp:77
bool create()
Definition: AutoRef.h:183
IAutoRef(const AChar *s)
Definition: AutoRef.h:275
bool bind()
Definition: AutoRef.h:201