![]()  | 
  
    Qore Programming Language
    0.9.16
    
   | 
 
base class for resolved call references More...
#include <CallReferenceNode.h>


Public Member Methods | |
| DLLEXPORT | ResolvedCallReferenceNode () | 
| public exported constructor function  | |
| DLLLOCAL | ResolvedCallReferenceNode (bool n_needs_eval, qore_type_t n_type=NT_FUNCREF) | 
| constructor is not exported outside the library  | |
| virtual DLLEXPORT | ~ResolvedCallReferenceNode () | 
| public destructor function  | |
| virtual DLLEXPORT QoreValue | 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 QoreValue | execValue (const QoreListNode *args, ExceptionSink *xsink) const =0 | 
| pure virtual function for executing the function reference  More... | |
| virtual DLLLOCAL QoreFunction * | getFunction ()=0 | 
| Returns the internal function object, if any; can return nullptr.  | |
| virtual DLLEXPORT QoreProgram * | getProgram () const | 
| returns a pointer to the QoreProgram object associated with this reference (can be nullptr)  More... | |
| virtual DLLEXPORT bool | is_equal_hard (const AbstractQoreNode *v, ExceptionSink *xsink) const | 
| returns true if the other node is the same value  | |
| virtual DLLEXPORT bool | is_equal_soft (const AbstractQoreNode *v, ExceptionSink *xsink) const | 
| returns true if the other node is the same value  | |
| virtual DLLEXPORT void | parseInit (QoreValue &val, LocalVar *oflag, int pflag, int &lvids, const QoreTypeInfo *&returnTypeInfo) | 
| for use by parse types to initialize them for execution during stage 1 parsing; not exported in the library; this method's API/ABI subject to change at any time  More... | |
| virtual DLLEXPORT AbstractQoreNode * | realCopy () const | 
| returns this with the ref count inmcremented; not a real copy  | |
| DLLLOCAL ResolvedCallReferenceNode * | refRefSelf () const | 
| references itself and returns this  | |
  Public Member Methods 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 QoreString * | getAsString (bool &del, int foff, ExceptionSink *xsink) const | 
| returns a QoreString giving the verbose string representation of the value  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 const DLLLOCAL char * | getTypeName () const | 
| returns the type name as a c string  | |
  Public Member Methods inherited from AbstractQoreNode | |
| DLLEXPORT | AbstractQoreNode (const AbstractQoreNode &v) | 
| copy constructor  | |
| 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... | |
| virtual DLLEXPORT void | customDeref (ExceptionSink *xsink) | 
| virtual DLLEXPORT void | customRef () const | 
| special processing when the object's reference count transitions from 0-1  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... | |
| virtual DLLEXPORT bool | derefImpl (ExceptionSink *xsink) | 
| decrements the reference count  More... | |
| DLLEXPORT QoreValue | eval (bool &needs_deref, ExceptionSink *xsink) const | 
| optionally evaluates the argument  More... | |
| DLLEXPORT QoreValue | eval (ExceptionSink *xsink) const | 
| evaluates the object and returns a value (or 0)  More... | |
| DLLEXPORT int64 | getAsBigInt () const | 
| returns the 64-bit integer value of the object  More... | |
| virtual DLLLOCAL int64 | getAsBigIntImpl () const | 
| default implementation, returns 0  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... | |
| virtual DLLLOCAL double | getAsFloatImpl () const | 
| default implementation, returns 0.0  More... | |
| DLLEXPORT int | getAsInt () const | 
| returns the integer value of the object  More... | |
| virtual DLLLOCAL int | getAsIntImpl () const | 
| default implementation, returns 0  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 | 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... | |
| DLLLOCAL AbstractQoreNode & | operator= (const AbstractQoreNode &) | 
| this function is not implemented; it is here as a private function in order to prohibit it from being used  | |
| DLLEXPORT void | ref () const | 
| increments the reference count  | |
| DLLEXPORT AbstractQoreNode * | refSelf () const | 
| returns "this" with an incremented reference count  More... | |
  Public Member Methods inherited from QoreReferenceCounter | |
| DLLEXPORT | QoreReferenceCounter () | 
| creates the reference counter object  | |
| DLLEXPORT | QoreReferenceCounter (const QoreReferenceCounter &old) | 
| creates a new object with a reference count of 1  More... | |
| DLLEXPORT | ~QoreReferenceCounter () | 
| destroys the reference counter object  | |
| DLLEXPORT bool | is_unique () const | 
| returns true if the reference count is 1  More... | |
| DLLEXPORT 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 | |
  Private Member Methods 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  | |
  Private Member Methods inherited from AbstractQoreNode | |
| virtual DLLEXPORT | ~AbstractQoreNode () | 
| default destructor does nothing  More... | |
  Private Attributes inherited from AbstractQoreNode | |
| bool | custom_reference_handlers: 1 | 
| set to one for objects that need custom reference handlers  | |
| 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  | |
base class for resolved call references
      
  | 
  virtual | 
this function should never be called for function references; this function should never be called directly
in debug mode this function calls assert(false)
Reimplemented from AbstractCallReferenceNode.
Reimplemented in LocalFunctionCallReferenceNode, LocalMethodCallReferenceNode, and LocalStaticMethodCallReferenceNode.
      
  | 
  pure virtual | 
pure virtual function for executing the function reference
executes the function reference and returns the value returned
| args | the arguments to the function | 
| xsink | any Qore-language exception thrown (and not handled) will be added here | 
Implemented in RunTimeResolvedMethodReferenceNode, RunTimeObjectMethodReferenceNode, FunctionCallReferenceNode, LocalFunctionCallReferenceNode, LocalMethodCallReferenceNode, and LocalStaticMethodCallReferenceNode.
      
  | 
  virtual | 
returns a pointer to the QoreProgram object associated with this reference (can be nullptr)
this function is not exported in the library's public interface
Reimplemented in RunTimeResolvedMethodReferenceNode, and RunTimeObjectMethodReferenceNode.
      
  | 
  virtual | 
for use by parse types to initialize them for execution during stage 1 parsing; not exported in the library; this method's API/ABI subject to change at any time
This function should only be overridden by types that can appear in the parse tree (i.e. are recognized by the parser)
| val | the containing QoreValue | 
| oflag | non-zero if initialized within class code | 
| pflag | bitfield parse flag | 
| lvids | the number of new local variables declared in this node | 
| typeInfo | any available type constraints on the initialized value or expression | 
Reimplemented from AbstractQoreNode.