Qore Programming Language - C/C++ Library 2.2.1
Loading...
Searching...
No Matches
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
DLLEXPORT ValueEvalRefHolder (ExceptionSink *xs)
 creates the object with with no evaluation
DLLEXPORT int eval (const AbstractQoreNode *exp)
 evaluates the argument, returns -1 for error, 0 = OK
DLLEXPORT int eval (const QoreValue exp)
 evaluates the argument, returns -1 for error, 0 = OK
Public Member Functions inherited from ValueOptionalRefHolder
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 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 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 QoreValueoperator* ()
 returns the value being managed
DLLLOCAL const QoreValueoperator* () const
 returns the value being managed
DLLLOCAL QoreValueoperator-> ()
 returns the value being managed
DLLLOCAL const QoreValueoperator-> () const
 returns the value being managed

Protected Member Functions

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

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
ExceptionSinkxsink
 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: