35 #ifndef CARTOBASE_SMART_RCPTRTRICK_H 36 #define CARTOBASE_SMART_RCPTRTRICK_H 74 template <
typename T>
inline 77 if( x._pcount && *x._pcount > 0 )
84 if( x._refCounter > 0 )
89 template <
typename T>
inline 92 if( x._pcount && *x._pcount > 0 )
99 if( x._refCounter > 0 )
104 template <
typename T>
inline 107 return x->_refCounter;
111 template <
typename T>
inline 120 return x._refCounter;
124 template <
typename T>
inline 128 return x->weak_count;
static void releaseOwnership(rc_ptr< T > &)
just increments the ref-counter of the underlying rc_ptr so that the rc_ptr will never delete the obj...
A multi-purpose general smart pointer, which can act as either a rc_ptr, a weak_ptr or a weak_shared_...
Base class for reference counted objects (intrusive)
weak_shared_ptr: increments a reference count, is told and becomes null whenever the shared object is...
static void restoreOwnership(rc_ptr< T > &)
decrements the ref-counter
Reference-counting pointer.
rc_ptr_trick merely makes a public access to the reference counter inside a rc_ptr.
static RCObject::RefCounterType & weakCount(weak_shared_ptr< T > &)
static RCObject::RefCounterType & refCount(shared_ptr< T > &)
allows complete read-write access to the counter
SharedObject allows to work with combined reference counting pointers and weak (Observer) pointers...