Qore Programming Language  0.9.16
ValueOptionalRefHolder Class Reference

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>

Inheritance diagram for ValueOptionalRefHolder:
Collaboration diagram for ValueOptionalRefHolder:

Public Member Methods

DLLLOCAL ValueOptionalRefHolder (ExceptionSink *xs)
 creates an empty object
 
DLLLOCAL ValueOptionalRefHolder (QoreValue n_v, bool nd, ExceptionSink *xs)
 creates the object with the given values
 
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 AbstractQoreNodetakeNode (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 QoreValueoperator* ()
 returns the value being managed
 
const DLLLOCAL QoreValueoperator* () const
 returns the value being managed
 
DLLLOCAL QoreValueoperator-> ()
 returns the value being managed
 
const DLLLOCAL QoreValueoperator-> () 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
 
ExceptionSinkxsink
 for possible Qore-language exceptions
 

Detailed Description

allows storing a value and setting a boolean flag that indicates if the value should be dereference in the destructor or not

Member Function Documentation

◆ ensureReferencedValue()

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


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