#include <vm.h>

Public Member Functions | |
| MAXON_METHOD Result< void > | Init (const String &identifier, const String &code, ERRORHANDLING errorHandling, const VmDebuggerConnectionRef *debug=nullptr) | 
| MAXON_METHOD Result< void > | Add (const String &name, const Data &data) | 
| MAXON_METHOD Result< Data > | Get (const String &name) | 
| MAXON_METHOD Result< void > | Execute () | 
| MAXON_METHOD Result< Data * > | PrivateInvoke (const String &name, BlockArray< Data > &helperStack, const DataType &expected=DataType::NullValue(), const Block< Data * > *arguments=nullptr) | 
| MAXON_METHOD Result< void > | ErrorHandling () | 
| MAXON_METHOD Result< void > | _PrivateInit (const LibraryRef &lib) | 
Private Member Functions | |
| MAXON_INTERFACE (VirtualMachineScopeInterface, MAXON_REFERENCE_NORMAL, "net.maxon.python.interface.virtualmachinescope") | |
      
  | 
  private | 
| MAXON_METHOD Result<void> Init | ( | const String & | identifier, | 
| const String & | code, | ||
| ERRORHANDLING | errorHandling, | ||
| const VmDebuggerConnectionRef * | debug = nullptr  | 
        ||
| ) | 
Initialized the virtual machine scope. Needs to be executed before any other function of the interface is used.
| [in] | identifier | Human readable unique identifier. Depending on the engine, some exception handlers might print this into their exception to make it easier to understand where the exception comes from. | 
| [in] | code | Code to be executed. | 
| [in] | errorHandling | Adjust how the virtual machine should treat an exception. | 
| [in] | debug | Optional virtual machine debugger connection, to debug the code. | 
| MAXON_METHOD Result<void> Add | ( | const String & | name, | 
| const Data & | data | ||
| ) | 
Add an object to the scope. The Data object will be converted through the underlying library implementation. So the Data object must be representable in the target virtual machine.
| [in] | name | Variable name of the object in the scope. | 
| [in] | data | Object that will be added to the scope. | 
| MAXON_METHOD Result<Data> Get | ( | const String & | name | ) | 
Returns an object from the scope.
| [in] | name | Variable name of the object in the scope. | 
| MAXON_METHOD Result<void> Execute | ( | ) | 
Execute the virtual machine scope. Before, and after executing the code, the optionally given debugger code from the VmDebuggerConnection will be executed.
| MAXON_METHOD Result<Data*> PrivateInvoke | ( | const String & | name, | 
| BlockArray< Data > & | helperStack, | ||
| const DataType & | expected = DataType::NullValue(),  | 
        ||
| const Block< Data * > * | arguments = nullptr  | 
        ||
| ) | 
Executes a callable object from the scope. Must only be called after VirtualMachineScopeInterface.Execute.
| [in] | name | Name of the callable object, e.g a function name | 
| [in] | helperStack | A temporary helper stack for the return value. | 
| [in] | expected | (Optional) Datatype of the returned object, otherwise the type of the object will be chosen automatically. | 
| [in] | arguments | (Optional) Arguments which will be passed to the callable object. | 
| MAXON_METHOD Result<void> ErrorHandling | ( | ) | 
Normally to reset the error state of the internal virtual machine. E.g. In Python PyErr_Print is executed. Normally used after VirtualMachineScopeInterface.Execute or VirtualMachineScopeInterface.PrivateInvoke failed, but only if scope is initialized with ERRORHANDLING.REDIRECT.
| MAXON_METHOD Result<void> _PrivateInit | ( | const LibraryRef & | lib | ) | 
Private.