![]()  | 
  
    Qore Programming Language
    0.9.16
    
   | 
 
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 (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 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  | |
| const DLLLOCAL QoreValue & | operator* () const | 
| returns the value being managed  | |
| DLLLOCAL QoreValue * | operator-> () | 
| returns the value being managed  | |
| const DLLLOCAL 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