Qore Programming Language
0.9.0
|
allows storing a value and setting a boolean flag that indicates if the value should be dereference in the destructor or not More...
#include <QoreValue.h>
Public Member Methods | |
DLLLOCAL | ValueOptionalRefHolder (QoreValue n_v, bool nd, ExceptionSink *xs) |
creates the object with the given values | |
DLLLOCAL | ValueOptionalRefHolder (ExceptionSink *xs) |
creates an empty object | |
DLLLOCAL void | clearTemp () |
sets needs_deref = false | |
DLLEXPORT void | ensureReferencedValue () |
DLLEXPORT QoreValue | getReferencedValue () |
returns a referenced value; caller owns the reference; the current object is not disturbed | |
DLLLOCAL bool | isTemp () const |
returns true if the value is temporary (needs dereferencing) | |
DLLLOCAL | operator bool () const |
returns true if the value is not NOTHING | |
DLLLOCAL void | sanitize () |
converts pointers to efficient representations and manages the reference count | |
DLLLOCAL void | setValue (QoreValue nv) |
assigns a new non-temporary value | |
DLLLOCAL void | setValue (QoreValue nv, bool temp) |
assigns a new value | |
DLLLOCAL AbstractQoreNode * | takeNode (bool &nd) |
returns the stored AbstractQoreNode pointer and sets the dereference flag as an output variable | |
template<typename T > | |
DLLLOCAL T * | takeReferencedNode () |
returns the stored node value and leaves the current object empty | |
DLLEXPORT QoreValue | takeReferencedValue () |
returns a QoreValue after incrementing the reference count of any node value stored if necessary | |
DLLLOCAL QoreValue | takeValue (bool &nd) |
returns the stored value and sets the dereference flag as an output variable | |
DLLLOCAL void | takeValueFrom (ValueOptionalRefHolder &val) |
returns the stored value which must be dereferenced if it is a node object (i.e. type == QV_Node) | |
Public Member Methods inherited from ValueHolderBase | |
DLLLOCAL | ValueHolderBase (ExceptionSink *xs) |
creates an ampty object | |
DLLLOCAL | ValueHolderBase (QoreValue n_v, ExceptionSink *xs) |
creates the object with the given value | |
DLLLOCAL QoreValue & | operator* () |
returns the value being managed | |
DLLLOCAL const QoreValue & | operator* () const |
returns the value being managed | |
DLLLOCAL QoreValue * | operator-> () |
returns the value being managed | |
DLLLOCAL const QoreValue * | operator-> () const |
returns the value being managed | |
Private Attributes | |
bool | needs_deref |
flag indicating if the value should be dereferenced in the destructor or not | |
Private Attributes inherited from ValueHolderBase | |
QoreValue | v |
the value held | |
ExceptionSink * | xsink |
for possible Qore-language exceptions | |
allows storing a value and setting a boolean flag that indicates if the value should be dereference in the destructor or not
DLLEXPORT void ValueOptionalRefHolder::ensureReferencedValue | ( | ) |
if needs_deref is false and an AbstractQoreNode* is contained, then the value is referenced and needs_deref is set to true