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 AbstractQoreNode * | exec (const QoreListNode *args, ExceptionSink *xsink) const =0
| pure virtual function for executing the function reference
virtual DLLLOCAL QoreProgram * | getProgram () const
| returns a pointer to the QoreProgram object associated with this reference (can be 0)
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
virtual DLLLOCAL int | getAsString (QoreString &str, int foff, ExceptionSink *xsink) const
| concatenate the verbose string representation of the value to an existing QoreString
virtual DLLLOCAL QoreString * | getAsString (bool &del, int foff, ExceptionSink *xsink) const
| returns a QoreString giving the verbose string representation of the value
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
DLLEXPORT | AbstractQoreNode (const AbstractQoreNode &v)
| copy constructor
DLLEXPORT bool | getAsBool () const
| returns the boolean value of the object
DLLEXPORT int | getAsInt () const
| returns the integer value of the object
DLLEXPORT int64 | getAsBigInt () const
| returns the 64-bit integer value of the object
DLLEXPORT double | getAsFloat () const
| returns the float value of the object
virtual DLLEXPORT QoreString * | getStringRepresentation (bool &del) const
| returns the value of the type converted to a string, default implementation: returns the empty string
virtual DLLEXPORT void | getStringRepresentation (QoreString &str) const
| concatentates the value of the type to an existing QoreString reference, default implementation does nothing
virtual DLLEXPORT class DateTime * | getDateTimeRepresentation (bool &del) const
| returns the DateTime representation of this type (default implementation: returns ZeroDate, del = false)
virtual DLLEXPORT void | getDateTimeRepresentation (DateTime &dt) const
| assigns the date representation of a value to the DateTime reference passed, default implementation does nothing
DLLLOCAL bool | needs_eval () const
| returns true if the object needs evaluation to return a value, false if not
DLLLOCAL qore_type_t | getType () const
| returns the data type
DLLEXPORT AbstractQoreNode * | eval (ExceptionSink *xsink) const
| evaluates the object and returns a value (or 0)
DLLEXPORT AbstractQoreNode * | eval (bool &needs_deref, ExceptionSink *xsink) const
| optionally evaluates the argument
DLLEXPORT int64 | bigIntEval (ExceptionSink *xsink) const
| evaluates the object and returns a 64-bit integer value
DLLEXPORT int | integerEval (ExceptionSink *xsink) const
| evaluates the object and returns an integer value
DLLEXPORT bool | boolEval (ExceptionSink *xsink) const
| evaluates the object and returns a boolean value
DLLEXPORT double | floatEval (ExceptionSink *xsink) const
| evaluates the object and returns a floating-point value
DLLLOCAL bool | is_value () const
| returns true if the node represents a value
DLLEXPORT void | deref (ExceptionSink *xsink)
| decrements the reference count and calls derefImpl() if there_can_be_only_one is false, otherwise does nothing
DLLEXPORT AbstractQoreNode * | refSelf () const
| returns "this" with an incremented reference count
DLLEXPORT void | ref () const
| increments the reference count
DLLLOCAL bool | isReferenceCounted () const
| returns true if the object is reference-counted
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
Public Member Functions inherited from QoreReferenceCounter
DLLEXPORT | QoreReferenceCounter ()
| creates the reference counter object
DLLEXPORT | ~QoreReferenceCounter ()
| destroys the reference counter object
DLLLOCAL int | reference_count () const
| gets the reference count
DLLLOCAL bool | is_unique () const
| returns true if the reference count is 1
DLLEXPORT void | ROreference () const
| atomically increments the reference count
DLLEXPORT bool | ROdereference () const
| atomically decrements the reference count

## Additional Inherited Members

Protected Member Functions inherited from AbstractCallReferenceNode
virtual DLLLOCAL AbstractQoreNode * | evalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly
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
virtual DLLLOCAL int64 | bigIntEvalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly
virtual DLLLOCAL int | integerEvalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly
virtual DLLLOCAL bool | boolEvalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly
virtual DLLLOCAL double | floatEvalImpl (ExceptionSink *xsink) const
| this function should never be called for function references; this function should never be called directly
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
Protected Attributes inherited from AbstractQoreNode
qore_type_t | type: 11
| the type of the object
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
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
bool | custom_reference_handlers: 1
| set to one for objects that need custom reference handlers

## Detailed Description

base class for resolved call references

## Member Function Documentation

virtual DLLLOCAL AbstractQoreNode* ResolvedCallReferenceNode::exec | ( | 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 (5431)