MQL execution environment

Overview

The 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
};



Previous:Transactions
Up:Part II: APIs
Next:MQL Error