Qore Programming Language  1.7.0
params.h File Reference
#include <qore/AbstractQoreNode.h>
Include dependency graph for params.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define HARD_QORE_VALUE_BINARY(list, i)   get_hard_value_param(list, i).get<const BinaryNode>()
 returns a const BinaryNode* from a hard typed binary param
 
#define HARD_QORE_VALUE_BOOL(list, i)   get_hard_value_param(list, i).getAsBool()
 returns a bool from a hard typed bool param
 
#define HARD_QORE_VALUE_DATE(list, i)   get_hard_value_param(list, i).get<const DateTimeNode>()
 returns a const DateTimeNode* from a hard typed date param
 
#define HARD_QORE_VALUE_FLOAT(list, i)   get_hard_value_param(list, i).getAsFloat()
 returns a double from a hard typed float param
 
#define HARD_QORE_VALUE_HASH(list, i)   get_hard_value_param(list, i).get<const QoreHashNode>()
 returns a const QoreHashNode* from a hard typed hash param
 
#define HARD_QORE_VALUE_INT(list, i)   get_hard_value_param(list, i).getAsBigInt()
 returns an int64 from a hard typed int param
 
#define HARD_QORE_VALUE_LIST(list, i)   get_hard_value_param(list, i).get<const QoreListNode>()
 returns a const QoreListNode* from a hard typed list param
 
#define HARD_QORE_VALUE_NUMBER(list, i)   get_hard_value_param(list, i).get<const QoreNumberNode>()
 returns a const QoreNumberNode* from a hard typed number or softnumber param
 
#define HARD_QORE_VALUE_OBJ_DATA(vname, Type, list, i, cid, dname, cname, xsink)   HARD_QORE_VALUE_PARAM(obj_##vname, const QoreObject, list, i); Type* vname = reinterpret_cast<Type*>(obj_##vname->getReferencedPrivateData(cid, xsink)); if (!vname && !*xsink) xsink->raiseException("OBJECT-ALREADY-DELETED", "cannot complete call setup to %s() because parameter %d (<class %s>) has already been deleted", cname, i + 1, dname)
 sets up an object pointer
 
#define HARD_QORE_VALUE_OBJ_OR_NOTHING_DATA(vname, Type, list, i, cid, xsink)   HARD_QORE_VALUE_OR_NOTHING_PARAM(obj_##vname, const QoreObject, list, i); Type* vname = obj_##vname ? reinterpret_cast<Type*>(obj_##vname->getReferencedPrivateData(cid, xsink)) : 0;
 sets up an object pointer
 
#define HARD_QORE_VALUE_OBJECT(list, i)   const_cast<QoreObject*>(get_hard_value_param(list, i).get<const QoreObject>())
 returns a QoreObject* from a hard typed object param
 
#define HARD_QORE_VALUE_OR_NOTHING_PARAM(name, Type, list, i)   Type* name = get_hard_value_or_nothing_param<Type>(list, i)
 returns a hard typed parameter
 
#define HARD_QORE_VALUE_PARAM(name, Type, list, i)   Type* name = get_hard_value_param(list, i).get<Type>()
 returns a hard typed parameter
 
#define HARD_QORE_VALUE_REF(list, i)   get_hard_value_param(list, i).get<const ReferenceNode>()
 returns a const QoreHashNode* from a hard typed hash param
 
#define HARD_QORE_VALUE_STRING(list, i)   get_hard_value_param(list, i).get<const QoreStringNode>()
 returns a const QoreStringNode* from a hard typed string param
 
#define TAKE_HARD_QORE_VALUE_OBJ_DATA(vname, Type, list, i, cid, dname, cname, xsink)   HARD_QORE_VALUE_PARAM(obj_##vname, const QoreObject, list, i); Type* vname = reinterpret_cast<Type*>(const_cast<QoreObject*>(obj_##vname)->getAndClearPrivateData(cid, xsink)); if (!vname && !*xsink) xsink->raiseException("OBJECT-ALREADY-DELETED", "cannot complete call setup to %s() because parameter %d (<class %s>) has already been deleted", cname, i + 1, dname); else if (vname) const_cast<QoreObject*>(obj_##vname)->doDelete(xsink)
 destructively sets up an object pointer; caller owns the pointer
 

Functions

template<typename T >
static T * get_hard_value_or_nothing_param (const QoreListNode *n, size_t i)
 returns the given type for hard typed parameters
 
static QoreValue get_hard_value_param (const QoreListNode *n, size_t i)
 returns the given type for hard typed parameters
 
static QoreValue get_param_value (const QoreListNode *n, size_t i)
 returns the argument in the position given or 0 if there is none More...
 
static const QoreEncodingget_value_encoding_param (const QoreListNode *n, size_t i, const QoreEncoding *def=QCS_DEFAULT)
 returns the QoreEncoding corresponding to the string passed or a default encoding
 
static unsigned num_args (const QoreListNode *n)
 returns the number of arguments passed to the function More...
 
static unsigned num_params (const QoreListNode *n)
 returns the number of arguments passed to the function More...
 
static const ReferenceNodetest_reference_param (const QoreListNode *n, size_t i)
 returns a ReferenceNode pointer for the argument position given or 0 if there is no argument there or if the argument is not a ReferenceNode More...
 

Detailed Description

Contains inline functions for accessing function and class method arguments.

Function Documentation

◆ get_param_value()

static QoreValue get_param_value ( const QoreListNode n,
size_t  i 
)
inlinestatic

returns the argument in the position given or 0 if there is none

Parameters
na pointer to the argument list
ithe offset in the list to test (first element is offset 0)
Returns
the argument in the position given or 0 if there is none

References QoreListNode::retrieveEntry().

◆ num_args()

static unsigned num_args ( const QoreListNode n)
inlinestatic

returns the number of arguments passed to the function

Parameters
na pointer to the argument list
Returns
the number of arguments passed to the function

References QoreListNode::size().

◆ num_params()

static unsigned num_params ( const QoreListNode n)
inlinestatic

returns the number of arguments passed to the function

Parameters
na pointer to the argument list
Returns
the number of arguments passed to the function

References QoreListNode::size().

◆ test_reference_param()

static const ReferenceNode* test_reference_param ( const QoreListNode n,
size_t  i 
)
inlinestatic

returns a ReferenceNode pointer for the argument position given or 0 if there is no argument there or if the argument is not a ReferenceNode

Note that this will also return a value for a closure; this is a synonym for test_funcref_param

Parameters
na pointer to the argument list
ithe offset in the list to test (first element is offset 0)
Returns
a ReferenceNode pointer for the argument position given or 0 if there is no argument there or if the argument is not a ReferenceNode

References NT_REFERENCE, and QoreListNode::retrieveEntry().