35#ifndef QORE_REFERENCE_HOLDER_H_
36#define QORE_REFERENCE_HOLDER_H_
51template<
typename T =
class AbstractQoreNode>
99 DLLLOCAL
operator bool()
const {
return p !=
nullptr; }
114 void*
operator new(size_t) =
delete;
126template<
typename T =
class SimpleQoreNode>
141 DLLLOCAL T* operator->() {
return p; }
142 DLLLOCAL T* operator*() {
return p; }
143 DLLLOCAL
const T* operator->()
const {
return p; }
144 DLLLOCAL
const T* operator*()
const {
return p; }
145 DLLLOCAL
void operator=(T* nv) {
150 DLLLOCAL T *release() {
165 DLLLOCAL
operator bool()
const {
return p != 0; }
173 void*
operator new(size_t) =
delete;
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:50
a templated class to manage a reference count of an object that can throw a Qore-language exception w...
Definition: ReferenceHolder.h:52
DLLLOCAL ReferenceHolder(T *p_, ExceptionSink *xsink_)
populates with object with data and the ExceptionSink pointer
Definition: ReferenceHolder.h:58
DLLLOCAL T * operator->()
returns the pointer being managed
Definition: ReferenceHolder.h:64
DLLLOCAL ~ReferenceHolder()
calls deref(ExceptionSink *) on the pointer being managed if not 0
Definition: ReferenceHolder.h:61
DLLLOCAL const T * operator*() const
returns the pointer being managed
Definition: ReferenceHolder.h:73
DLLLOCAL const T * operator->() const
returns the pointer being managed
Definition: ReferenceHolder.h:70
DLLLOCAL T ** getPtrPtr()
returns a pointer to the pointer being managed
Definition: ReferenceHolder.h:102
DLLLOCAL ReferenceHolder(ExceptionSink *xsink_)
creates an empty ReferenceHolder
Definition: ReferenceHolder.h:55
DLLLOCAL T *& getRef()
returns a reference to the ptr being managed
Definition: ReferenceHolder.h:105
DLLLOCAL T * operator*()
returns the pointer being managed
Definition: ReferenceHolder.h:67
DLLLOCAL T * release()
releases the pointer to the caller
Definition: ReferenceHolder.h:83
DLLLOCAL T * swap(T *val)
swaps the current value for a new one
Definition: ReferenceHolder.h:92
DLLLOCAL void operator=(T *nv)
assigns a new pointer to the holder, dereferences the current pointer if any
Definition: ReferenceHolder.h:76
manages a reference count of a pointer to a class that takes a simple "deref()" call with no argument...
Definition: ReferenceHolder.h:127
DLLLOCAL T * swap(T *val)
swaps the current value for a new one
Definition: ReferenceHolder.h:159
DLLLOCAL SimpleRefHolder(SimpleRefHolder &&old)
move constructor
Definition: ReferenceHolder.h:135