27 #ifndef QORE_REFERENCE_HOLDER_H_
28 #define QORE_REFERENCE_HOLDER_H_
42 template<
typename T =
class AbstractQoreNode>
46 DLLLOCAL ReferenceHolder& operator=(
const ReferenceHolder&);
47 DLLLOCAL
void*
operator new(size_t);
83 DLLLOCAL
operator bool()
const {
return p != 0; }
106 DLLLOCAL SimpleRefHolder& operator=(
const SimpleRefHolder&);
107 DLLLOCAL
void*
operator new(size_t);
112 DLLLOCAL SimpleRefHolder() : p(0) {}
113 DLLLOCAL SimpleRefHolder(T* p_) : p(p_) {}
114 DLLLOCAL ~SimpleRefHolder() {
if (p) p->deref(); }
116 DLLLOCAL T* operator->() {
return p; }
117 DLLLOCAL T* operator*() {
return p; }
118 DLLLOCAL
void operator=(T *nv) {
123 DLLLOCAL T *release() {
128 DLLLOCAL
operator bool()
const {
return p != 0; }
DLLLOCAL T ** getPtrPtr()
returns a pointer to the pointer being managed
Definition: ReferenceHolder.h:86
DLLLOCAL ReferenceHolder(T *p_, ExceptionSink *xsink_)
populates with object with data and the ExceptionSink pointer
Definition: ReferenceHolder.h:57
DLLLOCAL T * release()
releases the pointer to the caller
Definition: ReferenceHolder.h:76
DLLLOCAL T * operator*()
returns the pointer being managed
Definition: ReferenceHolder.h:66
DLLLOCAL ~ReferenceHolder()
calls deref(ExceptionSink *) on the pointer being managed if not 0
Definition: ReferenceHolder.h:60
DLLLOCAL T *& getRef()
returns a reference to the ptr being managed
Definition: ReferenceHolder.h:89
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:35
manages a reference count of a pointer to a class that takes a simple "deref()" call with no argument...
Definition: ReferenceHolder.h:103
DLLLOCAL T * operator->()
returns the pointer being managed
Definition: ReferenceHolder.h:63
DLLLOCAL ReferenceHolder(ExceptionSink *xsink_)
creates an empty ReferenceHolder
Definition: ReferenceHolder.h:54
DLLLOCAL void operator=(T *nv)
assigns a new pointer to the holder, dereferences the current pointer if any
Definition: ReferenceHolder.h:69
a templated class to manage a reference count of an object that can throw a Qore-language exception w...
Definition: ReferenceHolder.h:43