Qore Programming Language  0.8.11.1
Public Member Functions | Protected Member Functions | List of all members
QoreProgram Class Reference

supports parsing and executing Qore-language code, reference counted, dynamically-allocated only More...

#include <QoreProgram.h>

Inheritance diagram for QoreProgram:
Inheritance graph
[legend]
Collaboration diagram for QoreProgram:
Collaboration graph
[legend]

Public Member Functions

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 AbstractQoreNodecallFunction (const char *name, const QoreListNode *args, ExceptionSink *xsink)
 calls a function from the function name and returns the return value More...
 
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
 
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 QoreListNodegetFeatureList () const
 returns a list of features in the program object
 
DLLEXPORT AbstractQoreNodegetGlobalVariableValue (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 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 QoreNamespacegetQoreNS () const
 returns a pointer to the "Qore" namespace
 
DLLEXPORT RootQoreNamespacegetRootNS () const
 returns a pointer to the root namespace
 
DLLEXPORT QoreStringNodegetScriptDir () const
 returns the script directory, if known (0 if not) More...
 
DLLEXPORT QoreStringNodegetScriptName () const
 returns the script file name, if known (0 if not) More...
 
DLLEXPORT QoreStringNodegetScriptPath () const
 returns the script path (directory and name), if known (0 if not) More...
 
DLLEXPORT QoreListNodegetUserFunctionList ()
 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 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, AbstractQoreNode *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 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 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 AbstractQoreNoderun (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 AbstractQoreNoderunTopLevel (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 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 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 Functions 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
 
- Public Member Functions inherited from QoreReferenceCounter
DLLEXPORT QoreReferenceCounter ()
 creates the reference counter object
 
DLLEXPORT ~QoreReferenceCounter ()
 destroys the reference counter object
 
DLLLOCAL bool is_unique () const
 returns true if the reference count is 1 More...
 
DLLLOCAL 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
 

Protected Member Functions

virtual DLLLOCAL ~QoreProgram ()
 the destructor is private in order to prohibit the object from being allocated on the stack More...
 
- Protected Member Functions 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
 

Additional Inherited Members

- Protected Attributes inherited from QoreReferenceCounter
QoreThreadLock mRO
 pthread lock to ensure atomicity of updates for architectures where we don't have an atomic increment and decrement implementation
 

Detailed Description

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.

Constructor & Destructor Documentation

virtual DLLLOCAL QoreProgram::~QoreProgram ( )
protectedvirtual

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

Parameters
parse_optionsthe parse options mask for the QoreProgram object

Member Function Documentation

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

Parameters
namethe name of the feature to add to the QoreProgram's feature list
DLLEXPORT AbstractQoreNode* 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"

Parameters
namethe name of the function to call
argsthe argument to the function (can be 0)
xsinkif an error occurs, the Qore-language exception information will be added here
virtual DLLEXPORT void QoreProgram::deref ( ExceptionSink xsink)
virtual

decrements the reference count of the object

Parameters
xsinkany 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

Parameters
pothe parse options to subtract from the parse option mask
xsinkif 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

Parameters
pothe parse options to subtract from the parse option mask
xsinkif an error occurs, the Qore-language exception information will be added here
DLLEXPORT int QoreProgram::disableWarning ( int  code)

disables a warning by its code

Parameters
codethe warning code to disable
Returns
0 for success, -1 for error
DLLEXPORT int QoreProgram::enableWarning ( int  code)

enables a warning by its code

Parameters
codethe warning code to enable
Returns
0 for success, -1 for error
DLLEXPORT AbstractQoreNode* 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

Parameters
varthe variable name to return (do not include the "$" symbol)
foundreturns true if the variable exists, false if not
Returns
the value of the global variable given; if a non-zero pointer is returned, the caller owns the reference count returned
DLLEXPORT QoreStringNode* QoreProgram::getScriptDir ( ) const

returns the script directory, if known (0 if not)

Returns
the script directory, if known (0 if not)
DLLEXPORT QoreStringNode* QoreProgram::getScriptName ( ) const

returns the script file name, if known (0 if not)

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)

Returns
the script path (directory and name), if known (0 if not)
DLLEXPORT QoreListNode* QoreProgram::getUserFunctionList ( )

returns a list of all user functions in this program

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

Note
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
fpthe filename to parse
namethe name of the file being parsed and run
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here
warn_maskthe 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

Note
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
strthe code to parse
lstrthe label of the code being parsed to be used as a file name
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here
warn_maskthe 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

Note
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
strthe code to parse
lstrthe label of the code being parsed to be used as a file name
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here (0 = no warnings)
warn_maskthe warning mask to set (-1 sets all possible warnings)
sourcethe source file name (if lstr is a label representing a section of a file for example)
offsetthe 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

Note
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
strthe code to parse; the encoding of the string is assumed to be QCS_DEFAULT
lstrthe label of the code being parsed to be used as a file name
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here (0 = no warnings)
warn_maskthe 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

Note
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
strthe code to parse; the encoding of the string is assumed to be QCS_DEFAULT
lstrthe label of the code being parsed to be used as a file name
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here (0 = no warnings)
warn_maskthe warning mask to set (-1 sets all possible warnings)
sourcethe source file name (if lstr is a label representing a section of a file for example)
offsetthe 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.

Note
any threads started by this call will continue running in the background, to wait for them to terminate, call QoreProgram::waitForTermination() or QoreProgram::waitForTerminationAndDeref()
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
fpthe filename to run
namethe 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.

Note
any threads started by this call will continue running in the background, to wait for them to terminate, call QoreProgram::waitForTermination() or QoreProgram::waitForTerminationAndDeref()
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
strthe Qore-language code to parse and run
namethe 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.

Note
any threads started by this call will continue running in the background, to wait for them to terminate, call QoreProgram::waitForTermination() or QoreProgram::waitForTerminationAndDeref()
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
fpthe filename to run
namethe name of the file being parsed and run
classnamethe 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.

Note
any threads started by this call will continue running in the background, to wait for them to terminate, call QoreProgram::waitForTermination() or QoreProgram::waitForTerminationAndDeref()
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
strthe Qore-language code to parse and run
namethe label of the code being parsed and run (used as the file name)
classnamethe name of the class to instantiate
DLLEXPORT void QoreProgram::parseCommit ( ExceptionSink xsink,
ExceptionSink warn_sink = 0,
int  warn_mask = QP_WARN_ALL 
)

commits pending changes to the program

See also
QoreProgram::parsePending()
QoreProgram::parseRollback()
DLLEXPORT void QoreProgram::parseDefine ( const char *  str,
AbstractQoreNode val 
)

defines a parse-time variable; call only at parse time (or before parsing)

Parameters
strthe name of the variable
valthe value of the variable; may be 0; if non-0, then the QoreProgram object assumes ownership of the reference
Note
if this function is called at runtime it could cause a crash
See also
runtimeDefine()
DLLEXPORT void QoreProgram::parseDefine ( const char *  str,
const char *  val 
)

defines a parse-time variable; call only at parse time (or before parsing)

Parameters
strthe name of the variable
vala string value that will be parsed and converted to a qore value
Note
if this function is called at runtime it could cause a crash
See also
runtimeDefine()
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.

Note
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
filenamethe filename to open and parse
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here (0 = no warnings)
warn_maskthe warning mask to set (-1 sets all possible warnings)
only_first_exceptis 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.

Note
any threads started by this call will continue running in the background, to wait for them to terminate, call QoreProgram::waitForTermination() or QoreProgram::waitForTerminationAndDeref(). Also sets the script path.
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
filenamethe 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.

Note
any threads started by this call will continue running in the background, to wait for them to terminate, call QoreProgram::waitForTermination() or QoreProgram::waitForTerminationAndDeref(). Also sets the script path.
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
filenamethe filename to run
classnamethe 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

Returns
the script directory, if known (0 if not)
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

Parameters
codethe code to parse; the encoding of the string is assumed to be QCS_DEFAULT
labelthe label of the code being parsed to be used as a file name
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here (0 = no warnings)
warn_maskthe warning mask to set (-1 sets all possible warnings)
See also
QoreProgram::parseCommit()
QoreProgram::parseRollback()
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

Parameters
codethe code to parse; the encoding of the string is assumed to be QCS_DEFAULT
labelthe label of the code being parsed to be used as a file name
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here (0 = no warnings)
warn_maskthe warning mask to set (-1 sets all possible warnings)
sourcethe source file name (if lstr is a label representing a section of a file for example)
offsetthe line offset from the label to the file
See also
QoreProgram::parseCommit()
QoreProgram::parseRollback()
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

Parameters
strthe code to parse
lstrthe label of the code being parsed to be used as a file name
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here (0 = no warnings)
warn_maskthe warning mask to set (-1 sets all possible warnings)
See also
QoreProgram::parseCommit()
QoreProgram::parseRollback()
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

Parameters
strthe code to parse
lstrthe label of the code being parsed to be used as a file name
xsinkif an error occurs, the Qore-language exception information will be added here
warn_sinkif a warning is raised, the warning information will be added here (0 = no warnings)
warn_maskthe warning mask to set (-1 sets all possible warnings)
sourcethe source file name (if lstr is a label representing a section of a file for example)
offsetthe line offset from the label to the file
See also
QoreProgram::parseCommit()
QoreProgram::parseRollback()
DLLEXPORT void QoreProgram::parseRollback ( )

rolls back changes to the program object that were added with QoreProgram::parsePending()

See also
QoreProgram::parsePending()
QoreProgram::parseCommit()
DLLEXPORT void QoreProgram::parseSetTimeZone ( const char *  zone)

sets the time zone during parsing

Parameters
zonecan 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

Parameters
pothe parse options to add to the parse option mask
xsinkif an error occurs, the Qore-language exception information will be added here
DLLEXPORT AbstractQoreNode* 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)

Note
if the program is run as a class it's not possible to return a value
any threads started by this call will continue running in the background, to wait for them to terminate, call QoreProgram::waitForTermination() or QoreProgram::waitForTerminationAndDeref()
See also
QoreProgram::setExecClass()
Parameters
xsinkif an error occurs, the Qore-language exception information will be added here
Returns
the value returned by the final return statement (if any, can be 0)
DLLEXPORT void QoreProgram::runClass ( const char *  classname,
ExceptionSink xsink 
)

instantiates the class given and runs its constructor

Note
any threads started by this call will continue running in the background, to wait for them to terminate, call QoreProgram::waitForTermination() or QoreProgram::waitForTerminationAndDeref()
will also commit any pending changes added with QoreProgram::parsePending()
Parameters
classnamethe name of the class to instantiate
xsinkif an error occurs, the Qore-language exception information will be added here
DLLEXPORT AbstractQoreNode* QoreProgram::runTopLevel ( ExceptionSink xsink)

tuns the top level code and returns any return value

Note
any threads started by this call will continue running in the background, to wait for them to terminate, call QoreProgram::waitForTermination() or QoreProgram::waitForTerminationAndDeref()
Parameters
xsinkif an error occurs, the Qore-language exception information will be added here
Returns
the value returned by the final return statement (if any, can be 0)
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

Note
the string passed here will copied
Parameters
ecnthe name of the class to be executed as the program class
See also
QoreProgram::parseSetParseOptions()
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, ...)

Parameters
pothe parse options to add to the parse option mask
xsinkif 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

Parameters
pothe parse options to add to the parse option mask
xsinkif an error occurs, the Qore-language exception information will be added here
DLLEXPORT void QoreProgram::setScriptPath ( const char *  path)

sets the script path

Parameters
paththe directory and filename of the script (set to 0 to clear)
DLLEXPORT int QoreProgram::setWarningMask ( int  wm)

sets the warning mask

Parameters
wmthe new warning mask
Returns
0 for success, -1 for error
DLLEXPORT void QoreProgram::waitForTerminationAndDeref ( ExceptionSink xsink)

this call blocks until the program's last thread terminates, and then calls QoreProgram::deref()

Parameters
xsinkif an error occurs, the Qore-language exception information will be added here

Referenced by QoreProgramHelper::~QoreProgramHelper().


The documentation for this class was generated from the following file: