Qore Programming Language
0.9.0
|
supports parsing and executing Qore-language code, reference counted, dynamically-allocated only More...
#include <QoreProgram.h>
Public Member Methods | |
DLLEXPORT | QoreProgram () |
creates the object | |
DLLEXPORT | QoreProgram (int64 parse_options) |
creates the object and sets the parse options More... | |
DLLEXPORT void | addFeature (const char *name) |
manually add the feature to the program More... | |
DLLEXPORT void | assignBreakpoint (QoreBreakpoint *bkpt, ExceptionSink *xsink) |
DLLEXPORT QoreValue | callFunction (const char *name, const QoreListNode *args, ExceptionSink *xsink) |
calls a function from the function name and returns the return value More... | |
DLLEXPORT bool | checkAllowDebugging (ExceptionSink *xsink) |
check if program can provide debugging stuff | |
DLLEXPORT bool | checkFeature (const char *f) const |
returns true if the given feature is present in the program object | |
DLLEXPORT bool | checkWarning (int code) const |
returns true if the warning code is set | |
DLLEXPORT void | deleteAllBreakpoints () |
DLLEXPORT void | depDeref () |
dereferences a weak reference for the program object More... | |
DLLEXPORT void | depRef () |
incremements the weak reference count for the program object More... | |
virtual DLLLOCAL void | deref (ExceptionSink *xsink) |
dereferences the object and deletes it if the reference count reaches zero More... | |
virtual DLLLOCAL void | deref () |
dereferences the object and deletes it if the reference count reaches zero More... | |
virtual DLLEXPORT void | deref (ExceptionSink *xsink) |
decrements the reference count of the object More... | |
DLLEXPORT void | disableParseOptions (int po, ExceptionSink *xsink) |
turns off the parse options given in the passed mask and adds Qore-language exception information if an error occurs More... | |
DLLEXPORT void | disableParseOptions (int64 po, ExceptionSink *xsink) |
turns off the parse options given in the passed mask and adds Qore-language exception information if an error occurs More... | |
DLLEXPORT int | disableWarning (int code) |
disables a warning by its code More... | |
DLLEXPORT int | enableWarning (int code) |
enables a warning by its code More... | |
DLLEXPORT bool | existsFunction (const char *name) |
returns true if the given function exists as a user function, false if not | |
DLLEXPORT class_vec_t | findAllClassesRegex (const QoreString &pattern, int re_opts, ExceptionSink *xsink) const |
returns a list of all classes that match the pattern More... | |
DLLEXPORT func_vec_t | findAllFunctionsRegex (const QoreString &pattern, int re_opts, ExceptionSink *xsink) const |
returns a list of all functions that match the pattern More... | |
DLLEXPORT gvar_vec_t | findAllGlobalVarsRegex (const QoreString &pattern, int re_opts, ExceptionSink *xsink) const |
returns a list of all global variables that match the pattern More... | |
DLLEXPORT hashdecl_vec_t | findAllHashDeclsRegex (const QoreString &pattern, int re_opts, ExceptionSink *xsink) const |
returns a list of all typed hashes (hashdecls) that match the pattern More... | |
DLLEXPORT const_vec_t | findAllNamespaceConstantsRegex (const QoreString &pattern, int re_opts, ExceptionSink *xsink) const |
returns a list of all namespace constants that match the pattern More... | |
DLLEXPORT ns_vec_t | findAllNamespacesRegex (const QoreString &pattern, int re_opts, ExceptionSink *xsink) const |
returns a list of all namespaces that match the pattern More... | |
DLLEXPORT const QoreClass * | findClass (const char *path, ExceptionSink *xsink) const |
search for the given class in the program; can be a simple class name or a namespace-prefixed path (ex: "NamespaceName::ClassName") More... | |
DLLEXPORT const QoreExternalFunction * | findFunction (const char *path) const |
search for the given function in the program; can be a simple function name or a namespace-prefixed path (ex: "NamespaceName::function_name") More... | |
DLLEXPORT AbstractStatement * | findFunctionStatement (const char *functionName, const QoreListNode *params, ExceptionSink *xsink) const |
DLLEXPORT const QoreExternalGlobalVar * | findGlobalVar (const char *path, const QoreNamespace *&pns) const |
search for the given global variable in the program; can be a simple function name or a namespace-prefixed path (ex: "NamespaceName::global_var") More... | |
DLLEXPORT const TypedHashDecl * | findHashDecl (const char *path, const QoreNamespace *&pns) const |
search for the given typed hash (hashdecl) in the program; can be a simple function name or a namespace-prefixed path (ex: "NamespaceName::TypedHashName") More... | |
DLLEXPORT QoreNamespace * | findNamespace (const QoreString &path) |
search for the given namespace in the program; can be a simple namespace name or a namespace-prefixed path (ex: "NamespaceName::Namespace") More... | |
DLLEXPORT const QoreNamespace * | findNamespace (const QoreString &path) const |
search for the given namespace in the program; can be a simple namespace name or a namespace-prefixed path (ex: "NamespaceName::Namespace") More... | |
DLLEXPORT const QoreExternalConstant * | findNamespaceConstant (const char *path, const QoreNamespace *&pns) const |
search for the given namespace constant in the program; can be a simple function name or a namespace-prefixed path (ex: "NamespaceName::MyConstant") More... | |
DLLEXPORT QoreObject * | findQoreObject () const |
find Qore script object related to QoreProgram instance | |
DLLEXPORT AbstractStatement * | findStatement (const char *fileName, int line) const |
DLLEXPORT void | getBreakpoints (QoreBreakpointList_t &bkptList) |
DLLEXPORT AbstractQoreProgramExternalData * | getExternalData (const char *owner) const |
retrieves the external data pointer More... | |
DLLEXPORT QoreListNode * | getFeatureList () const |
returns a list of features in the program object | |
DLLEXPORT QoreValue | getGlobalVariableVal (const char *var, bool &found) const |
returns the value of the global variable given (do not include the "$" symbol), the caller owns the reference count returned More... | |
DLLEXPORT QoreValue | getGlobalVariableValue (const char *var, bool &found) const |
returns the value of the global variable given (do not include the "$" symbol), the caller owns the reference count returned More... | |
DLLEXPORT QoreHashNode * | getGlobalVars () const |
retrieves a hash of global variables and their values More... | |
DLLEXPORT QoreValue | getLocalVariableVal (const char *var, bool &found) const |
DLLEXPORT int | getParseOptions () const |
returns the parse options currently set for this program; DEPRECATED; use getParseOptions64() instead | |
DLLEXPORT int64 | getParseOptions64 () const |
returns the parse options currently set for this program | |
DLLEXPORT unsigned | getProgramId () const |
get the program id More... | |
DLLEXPORT QoreNamespace * | getQoreNS () const |
returns a pointer to the "Qore" namespace | |
DLLEXPORT RootQoreNamespace * | getRootNS () const |
returns a pointer to the root namespace | |
DLLEXPORT QoreStringNode * | getScriptDir () const |
returns the script directory, if known (0 if not) More... | |
DLLEXPORT QoreStringNode * | getScriptName () const |
returns the script file name, if known (0 if not) More... | |
DLLEXPORT QoreStringNode * | getScriptPath () const |
returns the script path (directory and name), if known (0 if not) More... | |
DLLEXPORT QoreHashNode * | getSourceFileNames (ExceptionSink *xsink) const |
get list of files which appears in a statement More... | |
DLLEXPORT QoreHashNode * | getSourceLabels (ExceptionSink *xsink) const |
get list of labels which appears in a statement More... | |
DLLEXPORT void | getStatementBreakpoints (const AbstractStatement *statement, QoreBreakpointList_t &bkptList) |
DLLEXPORT unsigned long | getStatementId (const AbstractStatement *statement) const |
get the statement id More... | |
DLLEXPORT QoreHashNode * | getThreadData () |
returns the thread-local data for the current thread and the Program object More... | |
DLLEXPORT QoreListNode * | getThreadList () const |
returns a list of threads active in this Program object More... | |
DLLEXPORT QoreListNode * | getUserFunctionList () |
returns a list of all user functions in this program More... | |
DLLEXPORT int | getWarningMask () const |
returns the warning mask | |
DLLEXPORT void | lockOptions () |
locks parse options so they may not be changed | |
DLLEXPORT void | parse (FILE *fp, const char *name, ExceptionSink *xsink, ExceptionSink *warn_sink=0, int warn_mask=QP_WARN_ALL) |
parses code from the file given and commits changes to the QoreProgram More... | |
DLLEXPORT void | parse (const QoreString *str, const QoreString *lstr, ExceptionSink *xsink, ExceptionSink *warn_sink=0, int warn_mask=QP_WARN_ALL) |
parses code from the given string and commits changes to the QoreProgram More... | |
DLLEXPORT void | parse (const QoreString *str, const QoreString *lstr, ExceptionSink *xsink, ExceptionSink *warn_sink, int warn_mask, const QoreString *source, int offset) |
parses code from the given string and commits changes to the QoreProgram More... | |
DLLEXPORT void | parse (const char *str, const char *lstr, ExceptionSink *xsink, ExceptionSink *warn_sink=0, int warn_mask=QP_WARN_ALL) |
parses code from the given string and commits changes to the QoreProgram More... | |
DLLEXPORT void | parse (const char *str, const char *lstr, ExceptionSink *xsink, ExceptionSink *warn_sink, int warn_mask, const char *source, int offset) |
parses code from the given string and commits changes to the QoreProgram More... | |
DLLEXPORT void | parseAndRun (FILE *fp, const char *name) |
parses the given file and runs the file More... | |
DLLEXPORT void | parseAndRun (const char *str, const char *name) |
parses the given string and runs the code More... | |
DLLEXPORT void | parseAndRunClass (FILE *fp, const char *name, const char *classname) |
parses the given file and runs the code by instantiating the class given More... | |
DLLEXPORT void | parseAndRunClass (const char *str, const char *name, const char *classname) |
parses the given string and runs the code by instantiating the class given More... | |
DLLEXPORT void | parseCmdLineDefines (ExceptionSink &xs, ExceptionSink &ws, int w, const std::map< std::string, std::string > &defmap) |
defines parse-time variables More... | |
DLLEXPORT void | parseCommit (ExceptionSink *xsink, ExceptionSink *warn_sink=0, int warn_mask=QP_WARN_ALL) |
commits pending changes to the program More... | |
DLLEXPORT void | parseDefine (const char *str, QoreValue val) |
defines a parse-time variable; call only at parse time (or before parsing) More... | |
DLLEXPORT void | parseDefine (const char *str, const char *val) |
defines a parse-time variable; call only at parse time (or before parsing) More... | |
DLLEXPORT void | parseDisableParseOptions (int64 po) |
disables the parse options given to the parse option mask | |
DLLEXPORT void | parseFile (const char *filename, ExceptionSink *xsink, ExceptionSink *warn_sink=0, int warn_mask=QP_WARN_ALL, bool only_first_except=false) |
parses code from the file given and commits changes to the QoreProgram More... | |
DLLEXPORT void | parseFileAndRun (const char *filename) |
parses the given filename and runs the file More... | |
DLLEXPORT void | parseFileAndRunClass (const char *filename, const char *classname) |
parses the given filename and runs the program by instantiating the class given More... | |
DLLLOCAL const char * | parseGetScriptDir () const |
returns the script directory, if known (0 if not), does not grab the parse lock, only to be called while parsing More... | |
DLLEXPORT void | parsePending (const char *code, const char *label, ExceptionSink *xsink, ExceptionSink *warn_sink=0, int warn_mask=QP_WARN_ALL) |
parses code from the given string but does not commit changes to the QoreProgram More... | |
DLLEXPORT void | parsePending (const char *code, const char *label, ExceptionSink *xsink, ExceptionSink *warn_sink, int warn_mask, const char *source, int offset) |
parses code from the given string but does not commit changes to the QoreProgram More... | |
DLLEXPORT void | parsePending (const QoreString *str, const QoreString *lstr, ExceptionSink *xsink, ExceptionSink *warn_sink=0, int warn_mask=QP_WARN_ALL) |
parses code from the given string but does not commit changes to the QoreProgram More... | |
DLLEXPORT void | parsePending (const QoreString *str, const QoreString *lstr, ExceptionSink *xsink, ExceptionSink *warn_sink, int warn_mask, const QoreString *source, int offset) |
parses code from the given string but does not commit changes to the QoreProgram More... | |
DLLEXPORT void | parseRollback () |
rolls back changes to the program object that were added with QoreProgram::parsePending() More... | |
DLLEXPORT int | parseRollback (ExceptionSink *xsink) |
rolls back changes to the program object that were added with QoreProgram::parsePending() More... | |
DLLEXPORT void | parseSetParseOptions (int po) |
adds the parse options given to the parse option mask; DEPRECATED: use parseSetParseOptions(int64) instead | |
DLLEXPORT void | parseSetParseOptions (int64 po) |
adds the parse options given to the parse option mask | |
DLLEXPORT void | parseSetTimeZone (const char *zone) |
sets the time zone during parsing More... | |
DLLEXPORT QoreProgram * | programRefSelf () const |
references "this" and returns a non-const pointer to itself | |
DLLEXPORT void | registerQoreObject (QoreObject *o, ExceptionSink *xsink) const |
register link to Qore script object | |
DLLEXPORT void | replaceParseOptions (int64 po, ExceptionSink *xsink) |
replaces the parse options in the program with those given by the argument; adds Qore-language exception information if an error occurs More... | |
DLLEXPORT AbstractStatement * | resolveStatementId (unsigned long statementId) const |
get the statement from statement id More... | |
DLLEXPORT QoreValue | run (ExceptionSink *xsink) |
runs the program (instantiates the program class if a program class has been set) and returns the return value (if any) More... | |
DLLEXPORT void | runClass (const char *classname, ExceptionSink *xsink) |
instantiates the class given and runs its constructor More... | |
DLLEXPORT const AbstractQoreFunctionVariant * | runtimeFindCall (const char *name, const QoreListNode *params, ExceptionSink *xsink) const |
DLLEXPORT QoreListNode * | runtimeFindCallVariants (const char *name, ExceptionSink *xsink) const |
DLLEXPORT QoreValue | runTopLevel (ExceptionSink *xsink) |
tuns the top level code and returns any return value More... | |
DLLEXPORT void | setExecClass (const char *ecn=0) |
sets the name of the application class to be executed (instantiated) instead of top-level code More... | |
DLLEXPORT void | setExternalData (const char *owner, AbstractQoreProgramExternalData *pud) |
sets a pointer to external data in the Program More... | |
DLLEXPORT int | setGlobalVarValue (const char *name, QoreValue val, ExceptionSink *xsink) |
sets the value of the given global variable More... | |
DLLEXPORT void | setParseOptions (int po, ExceptionSink *xsink) |
sets the parse options and adds Qore-language exception information if an error occurs More... | |
DLLEXPORT void | setParseOptions (int64 po, ExceptionSink *xsink) |
sets the parse options and adds Qore-language exception information if an error occurs More... | |
DLLEXPORT void | setScriptPath (const char *path) |
sets the script path More... | |
DLLEXPORT int | setWarningMask (int wm) |
sets the warning mask More... | |
DLLEXPORT void | unregisterQoreObject (QoreObject *o, ExceptionSink *xsink) const |
unregister link to Qore script object | |
DLLEXPORT void | waitForTermination () |
this call blocks until the program's last thread terminates | |
DLLEXPORT void | waitForTerminationAndDeref (ExceptionSink *xsink) |
this call blocks until the program's last thread terminates, and then calls QoreProgram::deref() More... | |
Public Member Methods inherited from AbstractPrivateData | |
virtual DLLLOCAL void | deref () |
decrements the reference count of the object without the possibility of throwing a Qore-language exception | |
DLLLOCAL void | ref () |
increments the reference count of the object 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 | |
Static Public Member Methods | |
static DLLEXPORT QoreListNode * | getAllQoreObjects (ExceptionSink *xsink) |
list all programs as QoreObject list | |
static DLLEXPORT QoreObject * | getQoreObject (QoreProgram *pgm) |
get QoreObject of QoreProgram | |
static DLLEXPORT QoreProgram * | resolveProgramId (unsigned programId) |
get the program from program id More... | |
Private Member Methods | |
virtual DLLLOCAL | ~QoreProgram () |
the destructor is private in order to prohibit the object from being allocated on the stack More... | |
Private Member Methods inherited from AbstractPrivateData | |
virtual DLLLOCAL | ~AbstractPrivateData () |
as these objects are reference counted, the destructor should be called only when the reference count = 0 and not manually | |
supports parsing and executing Qore-language code, reference counted, dynamically-allocated only
This class implements a transaction and thread-safe container for qore-language code This class implements two-layered reference counting to address problems with circular references. When a program has a global variable that contains an object that references the program... objects now reference the dependency counter, so when the object's counter reaches zero and the global variable list is deleted, then the variables will in turn dereference the program so it can be deleted.
|
privatevirtual |
the destructor is private in order to prohibit the object from being allocated on the stack
the destructor is run when the reference count reaches 0
DLLEXPORT QoreProgram::QoreProgram | ( | int64 | parse_options | ) |
creates the object and sets the parse options
parse_options | the parse options mask for the QoreProgram object |
DLLEXPORT void QoreProgram::addFeature | ( | const char * | name | ) |
manually add the feature to the program
useful for use with module-cmd when manually merging in namespace changes to the program
name | the name of the feature to add to the QoreProgram's feature list |
DLLEXPORT void QoreProgram::assignBreakpoint | ( | QoreBreakpoint * | bkpt, |
ExceptionSink * | xsink | ||
) |
Assign QoreBreakpoint instance to QoreProgram. If breakpoint has been assigned to an program then is unassigned in the first step.
DLLEXPORT QoreValue QoreProgram::callFunction | ( | const char * | name, |
const QoreListNode * | args, | ||
ExceptionSink * | xsink | ||
) |
calls a function from the function name and returns the return value
if the function does not exist, an exception is added to "xsink"
name | the name of the function to call |
args | the argument to the function (can be nullptr) |
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT void QoreProgram::deleteAllBreakpoints | ( | ) |
delete all breakpoints from instance
DLLEXPORT void QoreProgram::depDeref | ( | ) |
dereferences a weak reference for the program object
DLLEXPORT void QoreProgram::depRef | ( | ) |
incremements the weak reference count for the program object
|
inline |
dereferences the object and deletes it if the reference count reaches zero
do not use this function if the program may be running, use QoreProgram::waitForTerminationAndDeref() instead
xsink | if an error occurs, the Qore-language exception information will be added here |
|
inline |
dereferences the object and deletes it if the reference count reaches zero
do not use this function if the program may be running, use QoreProgram::waitForTerminationAndDeref() instead
xsink | if an error occurs, the Qore-language exception information will be added here |
|
virtual |
decrements the reference count of the object
xsink | any Qore-language exception information is stored here |
Reimplemented from AbstractPrivateData.
DLLEXPORT void QoreProgram::disableParseOptions | ( | int | po, |
ExceptionSink * | xsink | ||
) |
turns off the parse options given in the passed mask and adds Qore-language exception information if an error occurs
DEPRECATED: use disableParseOptions(int64, ...) instead
po | the parse options to subtract from the parse option mask |
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT void QoreProgram::disableParseOptions | ( | int64 | po, |
ExceptionSink * | xsink | ||
) |
turns off the parse options given in the passed mask and adds Qore-language exception information if an error occurs
po | the parse options to subtract from the parse option mask |
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT int QoreProgram::disableWarning | ( | int | code | ) |
disables a warning by its code
code | the warning code to disable |
DLLEXPORT int QoreProgram::enableWarning | ( | int | code | ) |
enables a warning by its code
code | the warning code to enable |
DLLEXPORT class_vec_t QoreProgram::findAllClassesRegex | ( | const QoreString & | pattern, |
int | re_opts, | ||
ExceptionSink * | xsink | ||
) | const |
returns a list of all classes that match the pattern
DLLEXPORT func_vec_t QoreProgram::findAllFunctionsRegex | ( | const QoreString & | pattern, |
int | re_opts, | ||
ExceptionSink * | xsink | ||
) | const |
returns a list of all functions that match the pattern
DLLEXPORT gvar_vec_t QoreProgram::findAllGlobalVarsRegex | ( | const QoreString & | pattern, |
int | re_opts, | ||
ExceptionSink * | xsink | ||
) | const |
returns a list of all global variables that match the pattern
DLLEXPORT hashdecl_vec_t QoreProgram::findAllHashDeclsRegex | ( | const QoreString & | pattern, |
int | re_opts, | ||
ExceptionSink * | xsink | ||
) | const |
returns a list of all typed hashes (hashdecls) that match the pattern
DLLEXPORT const_vec_t QoreProgram::findAllNamespaceConstantsRegex | ( | const QoreString & | pattern, |
int | re_opts, | ||
ExceptionSink * | xsink | ||
) | const |
returns a list of all namespace constants that match the pattern
DLLEXPORT ns_vec_t QoreProgram::findAllNamespacesRegex | ( | const QoreString & | pattern, |
int | re_opts, | ||
ExceptionSink * | xsink | ||
) | const |
returns a list of all namespaces that match the pattern
DLLEXPORT const QoreClass* QoreProgram::findClass | ( | const char * | path, |
ExceptionSink * | xsink | ||
) | const |
search for the given class in the program; can be a simple class name or a namespace-prefixed path (ex: "NamespaceName::ClassName")
DLLEXPORT const QoreExternalFunction* QoreProgram::findFunction | ( | const char * | path | ) | const |
search for the given function in the program; can be a simple function name or a namespace-prefixed path (ex: "NamespaceName::function_name")
DLLEXPORT AbstractStatement* QoreProgram::findFunctionStatement | ( | const char * | functionName, |
const QoreListNode * | params, | ||
ExceptionSink * | xsink | ||
) | const |
find statement related to particular function
DLLEXPORT const QoreExternalGlobalVar* QoreProgram::findGlobalVar | ( | const char * | path, |
const QoreNamespace *& | pns | ||
) | const |
search for the given global variable in the program; can be a simple function name or a namespace-prefixed path (ex: "NamespaceName::global_var")
DLLEXPORT const TypedHashDecl* QoreProgram::findHashDecl | ( | const char * | path, |
const QoreNamespace *& | pns | ||
) | const |
search for the given typed hash (hashdecl) in the program; can be a simple function name or a namespace-prefixed path (ex: "NamespaceName::TypedHashName")
DLLEXPORT QoreNamespace* QoreProgram::findNamespace | ( | const QoreString & | path | ) |
search for the given namespace in the program; can be a simple namespace name or a namespace-prefixed path (ex: "NamespaceName::Namespace")
DLLEXPORT const QoreNamespace* QoreProgram::findNamespace | ( | const QoreString & | path | ) | const |
search for the given namespace in the program; can be a simple namespace name or a namespace-prefixed path (ex: "NamespaceName::Namespace")
DLLEXPORT const QoreExternalConstant* QoreProgram::findNamespaceConstant | ( | const char * | path, |
const QoreNamespace *& | pns | ||
) | const |
search for the given namespace constant in the program; can be a simple function name or a namespace-prefixed path (ex: "NamespaceName::MyConstant")
DLLEXPORT AbstractStatement* QoreProgram::findStatement | ( | const char * | fileName, |
int | line | ||
) | const |
find statement related to particular line in a source file
DLLEXPORT void QoreProgram::getBreakpoints | ( | QoreBreakpointList_t & | bkptList | ) |
get list of breakpoint assigned to program.
DLLEXPORT AbstractQoreProgramExternalData* QoreProgram::getExternalData | ( | const char * | owner | ) | const |
retrieves the external data pointer
owner | a unique string identifying the owner of the data; for modules this should be the module name |
DLLEXPORT QoreValue QoreProgram::getGlobalVariableVal | ( | const char * | var, |
bool & | found | ||
) | const |
returns the value of the global variable given (do not include the "$" symbol), the caller owns the reference count returned
var | the variable name to return (do not include the "$" symbol) |
found | returns true if the variable exists, false if not |
DLLEXPORT QoreValue QoreProgram::getGlobalVariableValue | ( | const char * | var, |
bool & | found | ||
) | const |
returns the value of the global variable given (do not include the "$" symbol), the caller owns the reference count returned
var | the variable name to return (do not include the "$" symbol) |
found | returns true if the variable exists, false if not |
DLLEXPORT QoreHashNode* QoreProgram::getGlobalVars | ( | ) | const |
retrieves a hash of global variables and their values
DLLEXPORT QoreValue QoreProgram::getLocalVariableVal | ( | const char * | var, |
bool & | found | ||
) | const |
returns the value of the local variable given (do not include the "$" symbol), the caller owns the reference count returned The variable is related to current frame. This function can be executed only when program is stopped
var | the variable name to return (do not include the "$" symbol) |
found | returns true if the variable exists, false if not |
DLLEXPORT unsigned QoreProgram::getProgramId | ( | ) | const |
get the program id
DLLEXPORT QoreStringNode* QoreProgram::getScriptDir | ( | ) | const |
returns the script directory, if known (0 if not)
DLLEXPORT QoreStringNode* QoreProgram::getScriptName | ( | ) | const |
returns the script file name, if known (0 if not)
DLLEXPORT QoreStringNode* QoreProgram::getScriptPath | ( | ) | const |
returns the script path (directory and name), if known (0 if not)
DLLEXPORT QoreHashNode* QoreProgram::getSourceFileNames | ( | ExceptionSink * | xsink | ) | const |
get list of files which appears in a statement
DLLEXPORT QoreHashNode* QoreProgram::getSourceLabels | ( | ExceptionSink * | xsink | ) | const |
get list of labels which appears in a statement
DLLEXPORT void QoreProgram::getStatementBreakpoints | ( | const AbstractStatement * | statement, |
QoreBreakpointList_t & | bkptList | ||
) |
get list of breakpoint assigned to statement.
DLLEXPORT unsigned long QoreProgram::getStatementId | ( | const AbstractStatement * | statement | ) | const |
get the statement id
statement | MUST be statement of this Program instance! |
DLLEXPORT QoreHashNode* QoreProgram::getThreadData | ( | ) |
returns the thread-local data for the current thread and the Program object
will always be non-nullptr if the thread is registered
DLLEXPORT QoreListNode* QoreProgram::getThreadList | ( | ) | const |
returns a list of threads active in this Program object
DLLEXPORT QoreListNode* QoreProgram::getUserFunctionList | ( | ) |
returns a list of all user functions in this program
DLLEXPORT void QoreProgram::parse | ( | FILE * | fp, |
const char * | name, | ||
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink = 0 , |
||
int | warn_mask = QP_WARN_ALL |
||
) |
parses code from the file given and commits changes to the QoreProgram
fp | the filename to parse |
name | the name of the file being parsed and run |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
DLLEXPORT void QoreProgram::parse | ( | const QoreString * | str, |
const QoreString * | lstr, | ||
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink = 0 , |
||
int | warn_mask = QP_WARN_ALL |
||
) |
parses code from the given string and commits changes to the QoreProgram
str | the code to parse |
lstr | the label of the code being parsed to be used as a file name |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
DLLEXPORT void QoreProgram::parse | ( | const QoreString * | str, |
const QoreString * | lstr, | ||
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink, | ||
int | warn_mask, | ||
const QoreString * | source, | ||
int | offset | ||
) |
parses code from the given string and commits changes to the QoreProgram
str | the code to parse |
lstr | the label of the code being parsed to be used as a file name |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here (0 = no warnings) |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
source | the source file name (if lstr is a label representing a section of a file for example) |
offset | the line offset from the label to the file |
DLLEXPORT void QoreProgram::parse | ( | const char * | str, |
const char * | lstr, | ||
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink = 0 , |
||
int | warn_mask = QP_WARN_ALL |
||
) |
parses code from the given string and commits changes to the QoreProgram
str | the code to parse; the encoding of the string is assumed to be QCS_DEFAULT |
lstr | the label of the code being parsed to be used as a file name |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here (0 = no warnings) |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
DLLEXPORT void QoreProgram::parse | ( | const char * | str, |
const char * | lstr, | ||
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink, | ||
int | warn_mask, | ||
const char * | source, | ||
int | offset | ||
) |
parses code from the given string and commits changes to the QoreProgram
str | the code to parse; the encoding of the string is assumed to be QCS_DEFAULT |
lstr | the label of the code being parsed to be used as a file name |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here (0 = no warnings) |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
source | the source file name (if lstr is a label representing a section of a file for example) |
offset | the line offset from the label to the file |
DLLEXPORT void QoreProgram::parseAndRun | ( | FILE * | fp, |
const char * | name | ||
) |
parses the given file and runs the file
the default exception handler is run on any Qore-language exceptions raised while parsing and executing the file.
fp | the filename to run |
name | the name of the file being parsed and run |
DLLEXPORT void QoreProgram::parseAndRun | ( | const char * | str, |
const char * | name | ||
) |
parses the given string and runs the code
The default exception handler is run on any Qore-language exceptions raised while parsing and executing the code.
str | the Qore-language code to parse and run |
name | the label of the code being parsed and run (used as the file name) |
DLLEXPORT void QoreProgram::parseAndRunClass | ( | FILE * | fp, |
const char * | name, | ||
const char * | classname | ||
) |
parses the given file and runs the code by instantiating the class given
The default exception handler is run on any Qore-language exceptions raised while parsing and executing the file.
fp | the filename to run |
name | the name of the file being parsed and run |
classname | the name of the class to instantiate |
DLLEXPORT void QoreProgram::parseAndRunClass | ( | const char * | str, |
const char * | name, | ||
const char * | classname | ||
) |
parses the given string and runs the code by instantiating the class given
The default exception handler is run on any Qore-language exceptions raised while parsing and executing the code.
str | the Qore-language code to parse and run |
name | the label of the code being parsed and run (used as the file name) |
classname | the name of the class to instantiate |
DLLEXPORT void QoreProgram::parseCmdLineDefines | ( | ExceptionSink & | xs, |
ExceptionSink & | ws, | ||
int | w, | ||
const std::map< std::string, std::string > & | defmap | ||
) |
defines parse-time variables
xs | exception sink for errors |
ws | exception sink for warnings |
w | warning mask |
defmap | a map of variable names to values |
DLLEXPORT void QoreProgram::parseCommit | ( | ExceptionSink * | xsink, |
ExceptionSink * | warn_sink = 0 , |
||
int | warn_mask = QP_WARN_ALL |
||
) |
commits pending changes to the program
DLLEXPORT void QoreProgram::parseDefine | ( | const char * | str, |
QoreValue | val | ||
) |
defines a parse-time variable; call only at parse time (or before parsing)
str | the name of the variable |
val | the value of the variable; may be 0; if non-0, then the QoreProgram object assumes ownership of the reference |
DLLEXPORT void QoreProgram::parseDefine | ( | const char * | str, |
const char * | val | ||
) |
defines a parse-time variable; call only at parse time (or before parsing)
str | the name of the variable |
val | a string value that will be parsed and converted to a qore value |
DLLEXPORT void QoreProgram::parseFile | ( | const char * | filename, |
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink = 0 , |
||
int | warn_mask = QP_WARN_ALL , |
||
bool | only_first_except = false |
||
) |
parses code from the file given and commits changes to the QoreProgram
Also sets the script path.
filename | the filename to open and parse |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here (0 = no warnings) |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
only_first_except | is flag to stop parsing exceptions printing after 1st exception |
DLLEXPORT void QoreProgram::parseFileAndRun | ( | const char * | filename | ) |
parses the given filename and runs the file
any errors opening the file are added as Qore-language exceptions the default exception handler is run on any Qore-language exceptions raised during opening, parsing, and executing the file.
filename | the filename to run |
DLLEXPORT void QoreProgram::parseFileAndRunClass | ( | const char * | filename, |
const char * | classname | ||
) |
parses the given filename and runs the program by instantiating the class given
Any errors opening the file are added as Qore-language exceptions. The default exception handler is run on any Qore-language exceptions raised during opening, parsing, and executing the file.
filename | the filename to run |
classname | the name of the class to instantiate |
DLLLOCAL const char* QoreProgram::parseGetScriptDir | ( | ) | const |
returns the script directory, if known (0 if not), does not grab the parse lock, only to be called while parsing
DLLEXPORT void QoreProgram::parsePending | ( | const char * | code, |
const char * | label, | ||
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink = 0 , |
||
int | warn_mask = QP_WARN_ALL |
||
) |
parses code from the given string but does not commit changes to the QoreProgram
code | the code to parse; the encoding of the string is assumed to be QCS_DEFAULT |
label | the label of the code being parsed to be used as a file name |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here (0 = no warnings) |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
DLLEXPORT void QoreProgram::parsePending | ( | const char * | code, |
const char * | label, | ||
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink, | ||
int | warn_mask, | ||
const char * | source, | ||
int | offset | ||
) |
parses code from the given string but does not commit changes to the QoreProgram
code | the code to parse; the encoding of the string is assumed to be QCS_DEFAULT |
label | the label of the code being parsed to be used as a file name |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here (0 = no warnings) |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
source | the source file name (if lstr is a label representing a section of a file for example) |
offset | the line offset from the label to the file |
DLLEXPORT void QoreProgram::parsePending | ( | const QoreString * | str, |
const QoreString * | lstr, | ||
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink = 0 , |
||
int | warn_mask = QP_WARN_ALL |
||
) |
parses code from the given string but does not commit changes to the QoreProgram
str | the code to parse |
lstr | the label of the code being parsed to be used as a file name |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here (0 = no warnings) |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
DLLEXPORT void QoreProgram::parsePending | ( | const QoreString * | str, |
const QoreString * | lstr, | ||
ExceptionSink * | xsink, | ||
ExceptionSink * | warn_sink, | ||
int | warn_mask, | ||
const QoreString * | source, | ||
int | offset | ||
) |
parses code from the given string but does not commit changes to the QoreProgram
str | the code to parse |
lstr | the label of the code being parsed to be used as a file name |
xsink | if an error occurs, the Qore-language exception information will be added here |
warn_sink | if a warning is raised, the warning information will be added here (0 = no warnings) |
warn_mask | the warning mask to set (-1 sets all possible warnings) |
source | the source file name (if lstr is a label representing a section of a file for example) |
offset | the line offset from the label to the file |
DLLEXPORT void QoreProgram::parseRollback | ( | ) |
rolls back changes to the program object that were added with QoreProgram::parsePending()
DLLEXPORT int QoreProgram::parseRollback | ( | ExceptionSink * | xsink | ) |
rolls back changes to the program object that were added with QoreProgram::parsePending()
a Qore-language exception could be raised if the parse lock could not be acquired (Program has running threads)
DLLEXPORT void QoreProgram::parseSetTimeZone | ( | const char * | zone | ) |
sets the time zone during parsing
zone | can be either a region name (ex: 'Europe/Prague') or a UTC offset in the format SDD[:DD[:DD]] where S is + or - and D is an integer 0 - 9; the ':' characters are optional |
DLLEXPORT void QoreProgram::replaceParseOptions | ( | int64 | po, |
ExceptionSink * | xsink | ||
) |
replaces the parse options in the program with those given by the argument; adds Qore-language exception information if an error occurs
An exception will be raised if the calling program does not have PO_NO_CHILD_PO_RESTRICTIONS set
po | the parse options to add to the parse option mask |
xsink | if an error occurs, the Qore-language exception information will be added here |
|
static |
get the program from program id
programId | provided by QoreProgram::getProgramId |
DLLEXPORT AbstractStatement* QoreProgram::resolveStatementId | ( | unsigned long | statementId | ) | const |
get the statement from statement id
statementId | created by QoreProgram::getStatementId |
DLLEXPORT QoreValue QoreProgram::run | ( | ExceptionSink * | xsink | ) |
runs the program (instantiates the program class if a program class has been set) and returns the return value (if any)
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT void QoreProgram::runClass | ( | const char * | classname, |
ExceptionSink * | xsink | ||
) |
instantiates the class given and runs its constructor
classname | the name of the class to instantiate |
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT const AbstractQoreFunctionVariant* QoreProgram::runtimeFindCall | ( | const char * | name, |
const QoreListNode * | params, | ||
ExceptionSink * | xsink | ||
) | const |
name | the function or class method name; may also be namespace-justified |
params | a list of string parameters giving the types to match |
xsink | any errors finding the code are stored as Qore-language exceptions here; possible errors are as follows:
|
DLLEXPORT QoreListNode* QoreProgram::runtimeFindCallVariants | ( | const char * | name, |
ExceptionSink * | xsink | ||
) | const |
name | the function or class method name; may also be namespace-justified |
xsink | if an error occurs, the Qore-language exception information will be added here |
desc:
a string description of the call which includes the name and the full text call signatureparams:
a QoreListNode object that gives the params in a format that can be used by runtimeFindCall()DLLEXPORT QoreValue QoreProgram::runTopLevel | ( | ExceptionSink * | xsink | ) |
tuns the top level code and returns any return value
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT void QoreProgram::setExecClass | ( | const char * | ecn = 0 | ) |
sets the name of the application class to be executed (instantiated) instead of top-level code
normally parse option PO_NO_TOP_LEVEL_STATEMENTS should be set as well
ecn | the name of the class to be executed as the program class |
DLLEXPORT void QoreProgram::setExternalData | ( | const char * | owner, |
AbstractQoreProgramExternalData * | pud | ||
) |
sets a pointer to external data in the Program
owner | a unique string identifying the owner of the data; for modules this should be the module name |
pud | the external data |
DLLEXPORT int QoreProgram::setGlobalVarValue | ( | const char * | name, |
QoreValue | val, | ||
ExceptionSink * | xsink | ||
) |
sets the value of the given global variable
name | the name of the variable |
val | the value to assign; the value must be already referenced for the assignment and will be dereferenced if the assignment fails |
xsink | for Qore-language exceptions |
DLLEXPORT void QoreProgram::setParseOptions | ( | int | po, |
ExceptionSink * | xsink | ||
) |
sets the parse options and adds Qore-language exception information if an error occurs
DEPRECATED: use setParseOptions(int64, ...)
po | the parse options to add to the parse option mask |
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT void QoreProgram::setParseOptions | ( | int64 | po, |
ExceptionSink * | xsink | ||
) |
sets the parse options and adds Qore-language exception information if an error occurs
po | the parse options to add to the parse option mask |
xsink | if an error occurs, the Qore-language exception information will be added here |
DLLEXPORT void QoreProgram::setScriptPath | ( | const char * | path | ) |
sets the script path
path | the directory and filename of the script (set to 0 to clear) |
DLLEXPORT int QoreProgram::setWarningMask | ( | int | wm | ) |
sets the warning mask
wm | the new warning mask |
DLLEXPORT void QoreProgram::waitForTerminationAndDeref | ( | ExceptionSink * | xsink | ) |
this call blocks until the program's last thread terminates, and then calls QoreProgram::deref()
xsink | if an error occurs, the Qore-language exception information will be added here |