ValueEvalRefHolder Class Reference

evaluates an AbstractQoreNode and dereferences the stored value in the destructor More...

`#include <QoreValue.h>`

Inheritance diagram for ValueEvalRefHolder:
[legend]
Collaboration diagram for ValueEvalRefHolder:
[legend]

## Public Member Functions

DLLEXPORT | ValueEvalRefHolder (const AbstractQoreNode *exp, ExceptionSink *xs)
| evaluates the exp argument
DLLEXPORT | ValueEvalRefHolder (const QoreValue exp, ExceptionSink *xs)
| evaluates the exp argument More...
DLLEXPORT | ValueEvalRefHolder (ExceptionSink *xs)
| creates the object with with no evaluation More...
DLLEXPORT int | eval (const AbstractQoreNode *exp)
| evaluates the argument, returns -1 for error, 0 = OK More...
DLLEXPORT int | eval (const QoreValue exp)
| evaluates the argument, returns -1 for error, 0 = OK More...
Public Member Functions inherited from ValueOptionalRefHolder
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 | 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 Functions 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

## Protected Member Functions

DLLLOCAL int | evalIntern (const AbstractQoreNode *exp)
| evaluates the argument, returns -1 for error, 0 = OK More...
DLLLOCAL int | evalIntern (const QoreValue exp)
| evaluates the argument, returns -1 for error, 0 = OK More...

## Additional Inherited Members

Protected Attributes inherited from ValueOptionalRefHolder
bool | needs_deref
| flag indicating if the value should be dereferenced in the destructor or not
Protected Attributes inherited from ValueHolderBase
QoreValue | v
| the value held
ExceptionSink * | xsink
| for possible Qore-language exceptions

## Detailed Description

evaluates an AbstractQoreNode and dereferences the stored value in the destructor

## Constructor & Destructor Documentation

## ValueEvalRefHolder() [1/2]

DLLEXPORT ValueEvalRefHolder::ValueEvalRefHolder | ( | const QoreValue | exp,
|  | ExceptionSink * | xs
| ) |  |

evaluates the exp argument

Since
  Qore 0.9

## ValueEvalRefHolder() [2/2]

DLLEXPORT ValueEvalRefHolder::ValueEvalRefHolder | ( | ExceptionSink * | xs | ) |

creates the object with with no evaluation

Since
  Qore 0.8.13.1

## Member Function Documentation

## eval() [1/2]

DLLEXPORT int ValueEvalRefHolder::eval | ( | const AbstractQoreNode * | exp | ) |

evaluates the argument, returns -1 for error, 0 = OK

Since
  Qore 0.8.13.1

## eval() [2/2]

DLLEXPORT int ValueEvalRefHolder::eval | ( | const QoreValue | exp | ) |

evaluates the argument, returns -1 for error, 0 = OK

Since
  Qore 0.9

## evalIntern() [1/2]

DLLLOCAL int ValueEvalRefHolder::evalIntern | ( | const AbstractQoreNode * | exp | ) |

protected

evaluates the argument, returns -1 for error, 0 = OK

Since
  Qore 0.8.13.1

## evalIntern() [2/2]

DLLLOCAL int ValueEvalRefHolder::evalIntern | ( | const QoreValue | exp | ) |

protected

evaluates the argument, returns -1 for error, 0 = OK

Since
  Qore 0.9

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

- include/qore/QoreValue.h