|
Contents: Search: | MQL execution environmentOverviewThe MQL execution environment is a container for everything the MQL engine needs to know about its environment in order to function. It is recommended that you create an MQLExecEnv only indirectly, through an EmdrosEnv. C++ interface
#include <mql_execution_environment.h>
#define COMPILER_STAGE_NONE (0)
#define COMPILER_STAGE_PARSE (1)
#define COMPILER_STAGE_WEED (2)
#define COMPILER_STAGE_SYMBOL (3)
#define COMPILER_STAGE_TYPE (4)
#define COMPILER_STAGE_MONADS (5)
#define COMPILER_STAGE_EXEC (6)
class MQLExecEnv {
public:
/** Continue execution?
*
* Is automatically set to true by the constructor (and
* clean()).
*
* If set to false, execution will stop, and a failed sheaf
* will be returned.
*
* Only works with topographic queries, for now.
*
*/
bool m_bContinueExecution;
Statement *pStatement; // Only valid after a successful parse.
// Deleted and set to nil by clean().
EMdFDB* pDB;
EMdFOutput *pOut;
MQLError *pError; // Initialized by constructor, deleted by destructor
MQLExecEnv(EMdFDB* pMyDB, EMdFOutput *pMyOut);
~MQLExecEnv();
int nCompilerStage; // Shows you which compiler stage went wrong
void clean(void); // Must be called before each query is executed,
// but is called automatically by the
// mqlExecuteXXX functions and so, by proxy, the
// EmdrosEnv::executeXXX methods
};
|