allows a reference to be passed as an argument to Qore code More...
#include <ReferenceArgumentHelper.h>
Public Member Functions | |
DLLEXPORT | ReferenceArgumentHelper (AbstractQoreNode *val, ExceptionSink *xsink) |
creates a fake local variable assigned to "val" and creates a reference to the local variable | |
DLLEXPORT | ~ReferenceArgumentHelper () |
frees all memory still managed by the object | |
DLLEXPORT AbstractQoreNode * | getArg () const |
returns the reference to the fake local variable for use in an argument list, the caller owns the reference returned | |
DLLEXPORT AbstractQoreNode * | getOutputValue () |
returns the value of the reference and leaves the reference empty, the caller owns the reference returned |
allows a reference to be passed as an argument to Qore code
this class creates a fake local variable and then creates a reference the local variable that can be used in an argument list to be passed to a function. Then the ReferenceArgumentHelper::getOutputValue() function can be called to retrieve the value of the local variable after the Qore-language code has been executed. This allows values to be passed by reference to Qore-language code and then the value of the variable read back out and processed.
// create an argument list ReferenceHolder<QoreListNode> args(new QoreListNode(), &xsink); // instantiate "val" as a reference as the only argument in the argument list ReferenceArgumentHelper lvh("arg0", val, &xsink); args->push(lvh.getArg()); // execute method "m_fixup" and discard any return value discard(m_fixup->eval(qore_obj, *args, &xsink), &xsink); // return the value of the reference after executing the method return lvh.getOutputValue();
DLLEXPORT ReferenceArgumentHelper::ReferenceArgumentHelper | ( | AbstractQoreNode * | val, | |
ExceptionSink * | xsink | |||
) |
creates a fake local variable assigned to "val" and creates a reference to the local variable
val | the value to assign to the local variable | |
xsink | this value is saved to be used for dereferencing the fake local variable in the destructor |
DLLEXPORT AbstractQoreNode* ReferenceArgumentHelper::getArg | ( | ) | const |
returns the reference to the fake local variable for use in an argument list, the caller owns the reference returned
DLLEXPORT AbstractQoreNode* ReferenceArgumentHelper::getOutputValue | ( | ) |
returns the value of the reference and leaves the reference empty, the caller owns the reference returned