All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ResolvedCallReferenceNode Class Referenceabstract

base class for resolved call references More...

`#include <CallReferenceNode.h>`

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

## Public Member Functions

DLLLOCAL | ResolvedCallReferenceNode (bool n_needs_eval=false, qore_type_t n_type=NT_FUNCREF)
| constructor is not exported outside the library
virtual DLLLOCAL QoreValue | execValue (const QoreListNode *args, ExceptionSink *xsink) const =0
| pure virtual function for executing the function reference More...
virtual DLLLOCAL QoreProgram * | getProgram () const
| returns a pointer to the QoreProgram object associated with this reference (can be 0) More...
Public Member Functions inherited from AbstractCallReferenceNode
virtual DLLEXPORT bool | getAsBoolImpl () const
| returns false unless perl-boolean-evaluation is enabled, in which case it returns true More...
virtual DLLLOCAL int | getAsString (QoreString &str, int foff, ExceptionSink *xsink) const
| concatenate the verbose string representation of the value to an existing QoreString More...
virtual DLLLOCAL QoreString * | getAsString (bool &del, int foff, ExceptionSink *xsink) const
| returns a QoreString giving the verbose string representation of the value More...
virtual DLLLOCAL const char * | getTypeName () const
| returns the type name as a c string
Public Member Functions inherited from AbstractQoreNode
DLLEXPORT | AbstractQoreNode (qore_type_t t, bool n_value, bool n_needs_eval, bool n_there_can_be_only_one=false, bool n_custom_reference_handlers=false)
| constructor takes the type More...
DLLEXPORT | AbstractQoreNode (const AbstractQoreNode &v)
| copy constructor
DLLEXPORT int64 | bigIntEval (ExceptionSink *xsink) const
| evaluates the object and returns a 64-bit integer value More...
DLLEXPORT bool | boolEval (ExceptionSink *xsink) const
| evaluates the object and returns a boolean value More...
DLLEXPORT void | deref (ExceptionSink *xsink)
| decrements the reference count and calls derefImpl() if there_can_be_only_one is false, otherwise does nothing More...
DLLEXPORT AbstractQoreNode * | eval (ExceptionSink *xsink) const
| evaluates the object and returns a value (or 0) More...
DLLEXPORT AbstractQoreNode * | eval (bool &needs_deref, ExceptionSink *xsink) const
| optionally evaluates the argument More...
DLLEXPORT double | floatEval (ExceptionSink *xsink) const
| evaluates the object and returns a floating-point value More...
DLLEXPORT int64 | getAsBigInt () const
| returns the 64-bit integer value of the object More...
DLLEXPORT bool | getAsBool () const
| returns the boolean value of the object More...
DLLEXPORT double | getAsFloat () const
| returns the float value of the object More...
DLLEXPORT int | getAsInt () const
| returns the integer value of the object More...
virtual DLLEXPORT class DateTime * | getDateTimeRepresentation (bool &del) const
| returns the DateTime representation of this type (default implementation: returns ZeroDate, del = false) More...
virtual DLLEXPORT void | getDateTimeRepresentation (DateTime &dt) const
| assigns the date representation of a value to the DateTime reference passed, default implementation does nothing More...
virtual DLLEXPORT QoreString * | getStringRepresentation (bool &del) const
| returns the value of the type converted to a string, default implementation: returns the empty string More...
virtual DLLEXPORT void | getStringRepresentation (QoreString &str) const
| concatentates the value of the type to an existing QoreString reference, default implementation does nothing More...
DLLLOCAL qore_type_t | getType () const
| returns the data type More...
DLLLOCAL bool | hasValueApi () const
| returns the "has value api" flags - FIXME: remove with new ABI
DLLEXPORT int | integerEval (ExceptionSink *xsink) const
| evaluates the object and returns an integer value More...
DLLLOCAL bool | is_value () const
| returns true if the node represents a value More...
DLLLOCAL bool | isReferenceCounted () const
| returns true if the object is reference-counted
DLLLOCAL bool | needs_eval () const
| returns true if the object needs evaluation to return a value, false if not More...
virtual DLLEXPORT AbstractQoreNode * | parseInit (LocalVar *oflag, int pflag, int &lvids, const QoreTypeInfo *&typeInfo)
| for use by parse types to initialize them for execution during stage 1 parsing More...
DLLEXPORT void | ref () const
| increments the reference count
DLLEXPORT AbstractQoreNode * | refSelf () const
| returns "this" with an incremented reference count More...
Public Member Functions inherited from QoreReferenceCounter
DLLEXPORT | QoreReferenceCounter ()
| creates the reference counter object
DLLEXPORT | ~QoreReferenceCounter ()
| destroys the reference counter object
DLLLOCAL bool | is_unique () const
| returns true if the reference count is 1 More...
DLLLOCAL int | reference_count () const
| gets the reference count More...
DLLEXPORT bool | ROdereference () const
| atomically decrements the reference count More...
DLLEXPORT void | ROreference () const
| atomically increments the reference count

## Additional Inherited Members

Protected Member Functions inherited from AbstractCallReferenceNode
DLLLOCAL | AbstractCallReferenceNode (bool n_needs_eval, bool n_there_can_be_only_one, qore_type_t n_type=NT_FUNCREF)
| protected constructor for subclasses that are not reference-counted
virtual DLLLOCAL int64 | bigIntEvalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly More...
virtual DLLLOCAL bool | boolEvalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly More...
virtual DLLLOCAL AbstractQoreNode * | evalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly More...
virtual DLLLOCAL AbstractQoreNode * | evalImpl (bool &needs_deref, ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly More...
virtual DLLLOCAL double | floatEvalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly More...
virtual DLLLOCAL int | integerEvalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly More...
Protected Member Functions inherited from AbstractQoreNode
virtual DLLEXPORT | ~AbstractQoreNode ()
| default destructor does nothing More...
Protected Attributes inherited from AbstractQoreNode
bool | custom_reference_handlers: 1
| set to one for objects that need custom reference handlers
bool | has_value_api: 1
| set to flag with new QoreValue API (derived from ParseNode) - FIXME: to be removed when new ABI is implemented
bool | needs_eval_flag: 1
| if this is true then the type can be evaluated
bool | there_can_be_only_one: 1
| if this is set to true, then reference counting is turned off for objects of this class
qore_type_t | type: 11
| the type of the object More...
bool | value: 1
| this is true for values, if false then either the type needs evaluation to produce a value or is a parse expression
Protected Attributes inherited from QoreReferenceCounter
QoreThreadLock | mRO
| pthread lock to ensure atomicity of updates for architectures where we don't have an atomic increment and decrement implementation

## Detailed Description

base class for resolved call references

## Member Function Documentation

virtual DLLLOCAL QoreValue ResolvedCallReferenceNode::execValue | ( | const QoreListNode * | args,
|  | ExceptionSink * | xsink
| ) |  | const

pure virtual

pure virtual function for executing the function reference

executes the function reference and returns the value returned

Parameters

  args | the arguments to the function
  xsink | any Qore-language exception thrown (and not handled) will be added here

Returns
  a pointer to an AbstractQoreNode, the caller owns the reference count returned (can also be 0)

virtual DLLLOCAL QoreProgram* ResolvedCallReferenceNode::getProgram | ( |  | ) | const

virtual

returns a pointer to the QoreProgram object associated with this reference (can be 0)

this function is not exported in the library's public interface

Returns
  a pointer to the QoreProgram object associated with this reference (can be 0)

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

- include/qore/CallReferenceNode.h (6de6cc3b438610bf03b2bec44a3d7c61f90e3165)