All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ReferenceHolder< T > Class Template Reference

a templated class to manage a reference count of an object that can throw a Qore-language exception when dereferenced More...

`#include <ReferenceHolder.h>`

Inheritance diagram for ReferenceHolder< T >:
[legend]

## Public Member Functions

DLLLOCAL | ReferenceHolder (ExceptionSink *xsink_)
| creates an empty ReferenceHolder
DLLLOCAL | ReferenceHolder (T *p_, ExceptionSink *xsink_)
| populates with object with data and the ExceptionSink pointer
DLLLOCAL | ~ReferenceHolder ()
| calls deref(ExceptionSink *) on the pointer being managed if not 0
DLLLOCAL T ** | getPtrPtr ()
| returns a pointer to the pointer being managed
DLLLOCAL T *& | getRef ()
| returns a reference to the ptr being managed
DLLLOCAL | operator bool () const
| returns true if a non-0 pointer is being managed
DLLLOCAL T * | operator* ()
| returns the pointer being managed
DLLLOCAL T * | operator-> ()
| returns the pointer being managed
DLLLOCAL void | operator= (T *nv)
| assigns a new pointer to the holder, dereferences the current pointer if any
DLLLOCAL T * | release ()
| releases the pointer to the caller

## Detailed Description

### template<typename T = class AbstractQoreNode>
class ReferenceHolder< T >

a templated class to manage a reference count of an object that can throw a Qore-language exception when dereferenced

the destructor will call deref(ExceptionSink *)

ReferenceHolder<QoreQFont> holder(self->getReferencedPrivateData(CID_QFONT, xsink), xsink);
// the call to deref(ExceptionSink *) is automatic when the object goes out of scope
if (*xsink)
return 0;
return holder->styleHint();

The documentation for this class was generated from the following file:

- include/qore/ReferenceHolder.h (6de6cc3b438610bf03b2bec44a3d7c61f90e3165)