Class ssq::VM
Class List > ssq > VM
Squirrel Virtual Machine object.
#include <vm.hpp>
Inherits the following classes: ssq::Table
Public Functions
Type | Name |
---|---|
VM (size_t stackSize, Libs::Flag flags=0x00) Creates a VM with a fixed stack size. | |
VM (const VM & other) = delete Disabled copy constructor. | |
VM (VM && other) Move constructor. | |
void | addClassObj (size_t hashCode, const HSQOBJECT & obj) Add registered class object into the table of known classes. |
Enum | addEnum (const char * name) Adds a new enum to this table. |
Object | callFunc (const Function & func, const Object & env, Args &&... args) const Calls a global function. |
Script | compileFile (const char * path) Compiles a script from a source file. |
Script | compileSource (const char * source, const char * name="buffer") Compiles a script from a memory. |
void | debugStack () const Prints stack objects. |
void | destroy () Destroys the VM and all of this objects. |
const HSQOBJECT & | getClassObj (size_t hashCode) Get registered class object from hash code. |
const CompileException & | getLastCompileException () const Returns the last compilation exception. |
const RuntimeException & | getLastRuntimeException () const Returns the last runtime exception. |
SQInteger | getTop () const Returns the index of the top slot of the stack. |
Array | newArray () const Creates a new empty array. |
Array | newArray (const std::vector< T > & vector) const Creates a new array. |
Instance | newInstance (const Class & cls, Args &&... args) const Creates a new instance of class and call constructor with given arguments. |
Instance | newInstanceNoCtor (const Class & cls) const Creates a new instance of class without calling a constructor. |
Table | newTable () const Creates a new empty table. |
VM & | operator= (const VM & other) = delete Copy assingment operator. |
VM & | operator= (VM && other) Move assingment operator. |
void | registerStdlib (Libs::Flag flags) Registers standard template libraries. |
void | run (const Script & script) const Runs a script. |
void | setCompileErrorFunc (SqCompileErrorFunc compileErrorFunc) Registers compilation error function. |
void | setConst (const char * name, const T & value) Adds a new constant key-value pair to this table. |
void | setPrintFunc (SqPrintFunc printFunc, SqErrorFunc errorFunc) Registers print and error functions. |
void | setRuntimeErrorFunc (SqRuntimeErrorFunc runtimeErrorFunc) Registers runtime error function. |
void | swap (VM & other) Swaps the contents of this VM with another one. |
virtual | ~VM () Destructor. |
ssq::Table
Public Functions inherited fromType | Name |
---|---|
Table () Creates empty table with null VM . | |
Table (const Object & other) Converts Object toTable . | |
Table (HSQUIRRELVM vm) Creates empty table. | |
Table (const Table & other) Copy constructor. | |
Table (Table && other) Move constructor. | |
Class | addAbstractClass (const char * name) Adds a new abstract class type to this table. |
Class | addClass (const char * name, const std::function< T *(Args...)> & allocator=std::bind(&detail::defaultClassAllocator< T >), bool release=true) Adds a new class type to this table. |
Class | addClass (const char * name, const Class::Ctor< T(Args...)> & constructor, bool release=true) Adds a new class type to this table. |
Class | addClass (const char * name, const F & lambda, bool release=true) Adds a new class type to this table. |
Function | addFunc (const char * name, const std::function< R(Args...)> & func) Adds a new function type to this table. |
Function | addFunc (const char * name, const F & lambda) Adds a new lambda type to this table. |
Table | addTable (const char * name) Adds a new table to this table. |
Class | findClass (const char * name) const Finds a class in this table. |
Function | findFunc (const char * name) const Finds a function in this table. |
T | get (const char * name) |
Table & | operator= (const Table & other) Copy assingment operator. |
Table & | operator= (Table && other) Move assingment operator. |
void | set (const char * name, const T & value) Adds a new key-value pair to this table. |
size_t | size () |
virtual | ~Table () = default Destructor. |
ssq::Object
Public Functions inherited fromType | Name |
---|---|
Object () Creates an empty object with null VM . | |
Object (HSQUIRRELVM vm) Creates an empty object. | |
Object (const Object & other) Copy constructor to copy the object reference. | |
Object (Object && other) Move constructor. | |
Object | find (const char * name) const Finds object within this object. |
const HSQUIRRELVM & | getHandle () const Returns the Squirrel virtual machine handle associated with this instance. |
const HSQOBJECT & | getRaw () const Returns raw Squirrel object reference. |
HSQOBJECT & | getRaw () Returns raw Squirrel object reference. |
Type | getType () const Returns the type of the object. |
const char * | getTypeStr () const Returns the type of the object in string format. |
size_t | getTypeTag () const Returns the typetag associated with this object. |
bool | isEmpty () const Checks if the object is empty. |
bool | isNull () const Returns true if the object is nullptr. |
Object & | operator= (const Object & other) Copy assingment operator. |
Object & | operator= (Object && other) Move assingment operator. |
void | reset () Releases the object and resets it to empty. |
void | swap (Object & other) Swaps two objects. |
T | to () const Returns an arbitary value of this object. |
Array | toArray () const Returns the Array value of this object. |
bool | toBool () const Returns the boolean value of this object. |
Class | toClass () const Returns the Class value of this object. |
float | toFloat () const Returns the float value of this object. |
Function | toFunction () const Returns the Function value of this object. |
Instance | toInstance () const Returns the Instance value of this object. |
int32_t | toInt () const Returns the integer value of this object. |
T | toPtrUnsafe () const Unsafe cast this object into any pointer of type T. |
std::string | toString () const Returns the string value of this object. |
Table | toTable () const Returns the Table value of this object. |
virtual | ~Object () |
ssq::Object
Protected Attributes inherited fromType | Name |
---|---|
HSQOBJECT | obj |
HSQUIRRELVM | vm |
bool | weak |
Public Functions Documentation
function VM [1/3]
ssq::VM::VM (
size_t stackSize,
Libs::Flag flags=0x00
)
function VM [2/3]
ssq::VM::VM (
const VM & other
) = delete
function VM [3/3]
ssq::VM::VM (
VM && other
)
function addClassObj
void ssq::VM::addClassObj (
size_t hashCode,
const HSQOBJECT & obj
)
function addEnum
Enum ssq::VM::addEnum (
const char * name
)
function callFunc
template<class... Args>
inline Object ssq::VM::callFunc (
const Function & func,
const Object & env,
Args &&... args
) const
Parameters:
- func The instance of a function
- args Any number of arguments
Exception:
- RuntimeException if an exception is thrown or number of arguments do not match
- TypeException if casting from Squirrel objects to C++ objects failed
function compileFile
Script ssq::VM::compileFile (
const char * path
)
Exception:
function compileSource
Script ssq::VM::compileSource (
const char * source,
const char * name="buffer"
)
The script can be associated with a name as a second parameter. This name is used during runtime error information.
Exception:
function debugStack
void ssq::VM::debugStack () const
function destroy
void ssq::VM::destroy ()
function getClassObj
const HSQOBJECT & ssq::VM::getClassObj (
size_t hashCode
)
function getLastCompileException
inline const CompileException & ssq::VM::getLastCompileException () const
function getLastRuntimeException
inline const RuntimeException & ssq::VM::getLastRuntimeException () const
function getTop
SQInteger ssq::VM::getTop () const
function newArray [1/2]
inline Array ssq::VM::newArray () const
function newArray [2/2]
template<class T class T>
inline Array ssq::VM::newArray (
const std::vector< T > & vector
) const
function newInstance
template<class... Args>
inline Instance ssq::VM::newInstance (
const Class & cls,
Args &&... args
) const
Parameters:
- cls The object of a class
- args Any number of arguments
Exception:
function newInstanceNoCtor
inline Instance ssq::VM::newInstanceNoCtor (
const Class & cls
) const
Parameters:
- cls The object of a class
Exception:
function newTable
inline Table ssq::VM::newTable () const
function operator=
VM & ssq::VM::operator= (
const VM & other
) = delete
function operator=
VM & ssq::VM::operator= (
VM && other
)
function registerStdlib
void ssq::VM::registerStdlib (
Libs::Flag flags
)
function run
void ssq::VM::run (
const Script & script
) const
When the script runs for the first time, the contens such as class definitions are assigned to the root table (global table).
Exception:
function setCompileErrorFunc
void ssq::VM::setCompileErrorFunc (
SqCompileErrorFunc compileErrorFunc
)
function setConst
template<typename T typename T>
inline void ssq::VM::setConst (
const char * name,
const T & value
)
function setPrintFunc
void ssq::VM::setPrintFunc (
SqPrintFunc printFunc,
SqErrorFunc errorFunc
)
function setRuntimeErrorFunc
void ssq::VM::setRuntimeErrorFunc (
SqRuntimeErrorFunc runtimeErrorFunc
)
function swap
void ssq::VM::swap (
VM & other
)
function ~VM
virtual ssq::VM::~VM ()
The documentation for this class was generated from the following file include/simplesquirrel/vm.hpp