Defines an environment in which scripts can execute. More...
Defines an environment in which scripts can execute.
It can be seen as a context in which structures and objects can be defined and accessed.
|
noexcept |
Constructor.
nkScripts::Environment::~Environment | ( | ) |
Destructor.
const ExecutionResult& nkScripts::Environment::getLastExecutionResult | ( | ) | const |
nkMemory::StringView nkScripts::Environment::getName | ( | ) | const |
void nkScripts::Environment::setEnvironmentFor | ( | INTERPRETER | interpretType | ) |
Sets the interpreter the environment should be ready for.
interpretType | The type of interpreter to use. |
void nkScripts::Environment::setName | ( | nkMemory::StringView | name | ) |
Sets the name of the environment.
name | The name to set. |
bool nkScripts::Environment::execute | ( | const Script & | script | ) |
Requests the execution of a script within the environment.
script | The script to execute. |
void nkScripts::Environment::requestGarbageCollection | ( | ) |
Requests a garbage collection within the environment.
void nkScripts::Environment::setVar | ( | nkMemory::StringView | name, |
bool | value | ||
) |
Sets a variable within the environment.
name | The name of the variable to set. |
value | The value to assign to it. |
void nkScripts::Environment::setVar | ( | nkMemory::StringView | name, |
int | value | ||
) |
Sets a variable within the environment.
name | The name of the variable to set. |
value | The value to assign to it. |
void nkScripts::Environment::setVar | ( | nkMemory::StringView | name, |
float | value | ||
) |
Sets a variable within the environment.
name | The name of the variable to set. |
value | The value to assign to it. |
void nkScripts::Environment::setVar | ( | nkMemory::StringView | name, |
double | value | ||
) |
Sets a variable within the environment.
name | The name of the variable to set. |
value | The value to assign to it. |
void nkScripts::Environment::setVar | ( | nkMemory::StringView | name, |
const char * | value | ||
) |
Sets a variable within the environment.
name | The name of the variable to set. |
value | The value to assign to it. |
void nkScripts::Environment::setVar | ( | nkMemory::StringView | name, |
nkMemory::StringView | value | ||
) |
Sets a variable within the environment.
name | The name of the variable to set. |
value | The value to assign to it. |
void nkScripts::Environment::setVar | ( | nkMemory::StringView | name, |
const ScriptObjectReference & | value | ||
) |
Sets a variable within the environment.
name | The name of the variable to set. |
value | The value to assign to it. |
void nkScripts::Environment::setObject | ( | nkMemory::StringView | name, |
nkMemory::StringView | userTypeName, | ||
void * | value | ||
) |
Sets an object within the environment.
name | The name of the object to set. |
userTypeName | The type name of the user data to set. |
value | The user data to assign to it. |
bool nkScripts::Environment::isVarSet | ( | nkMemory::StringView | name | ) |
Checks whether a variable is existing in the environment.
name | The name of the variable to check. |
bool nkScripts::Environment::getVar | ( | nkMemory::StringView | name, |
bool | defaultValue | ||
) |
Retrieves a variable, if it exists.
name | The name of the variable to retrieve the value from. |
defaultValue | The default value to return if no variable of this name exists, or if the variable is not from requested type. |
int nkScripts::Environment::getVar | ( | nkMemory::StringView | name, |
int | defaultValue | ||
) |
Retrieves a variable, if it exists.
name | The name of the variable to retrieve the value from. |
defaultValue | The default value to return if no variable of this name exists, or if the variable is not from requested type. |
float nkScripts::Environment::getVar | ( | nkMemory::StringView | name, |
float | defaultValue | ||
) |
Retrieves a variable, if it exists.
name | The name of the variable to retrieve the value from. |
defaultValue | The default value to return if no variable of this name exists, or if the variable is not from requested type. |
double nkScripts::Environment::getVar | ( | nkMemory::StringView | name, |
double | defaultValue | ||
) |
Retrieves a variable, if it exists.
name | The name of the variable to retrieve the value from. |
defaultValue | The default value to return if no variable of this name exists, or if the variable is not from requested type. |
nkMemory::StringView nkScripts::Environment::getVar | ( | nkMemory::StringView | name, |
const char * | defaultValue | ||
) |
Retrieves a variable, if it exists.
name | The name of the variable to retrieve the value from. |
defaultValue | The default value to return if no variable of this name exists, or if the variable is not from requested type. |
nkMemory::StringView nkScripts::Environment::getVar | ( | nkMemory::StringView | name, |
nkMemory::StringView | defaultValue | ||
) |
Retrieves a variable, if it exists.
name | The name of the variable to retrieve the value from. |
defaultValue | The default value to return if no variable of this name exists, or if the variable is not from requested type. |
ScriptObjectReference nkScripts::Environment::getVar | ( | nkMemory::StringView | name | ) |
Retrieves a variable, if it exists.
name | The name of the variable to retrieve the value from. |
void* nkScripts::Environment::getObject | ( | nkMemory::StringView | name, |
nkMemory::StringView | userTypeName = nullptr |
||
) |
Retrieves an object if it exists.
name | The name of the variable to retrieve the object from. |
userTypeName | If needed, the type name can be specified to ensure pointer returned is of the right type. |
ScriptObjectReference nkScripts::Environment::getScriptFunction | ( | nkMemory::StringView | name | ) |
Retrieves a reference over a function defined in the scripting environment.
name | The name of the function to retrieve. |
Function* nkScripts::Environment::setFunc | ( | nkMemory::StringView | name | ) |
Sets a function within the environment.
name | The name of the function to set. |
bool nkScripts::Environment::isFuncSet | ( | nkMemory::StringView | name | ) |
Checks whether a function is existing within the environment.
name | The name of the function to check. |
Function* nkScripts::Environment::getFunc | ( | nkMemory::StringView | name | ) |
name | The name of the function to retrieve. |
UserType* nkScripts::Environment::setUserType | ( | nkMemory::StringView | name | ) |
Sets a user type within the environment.
name | The name of the user type to set. It is possible to shortcut into namespaces using a syntax like ns0.ns1.UserTypeName. |
bool nkScripts::Environment::isUserTypeSet | ( | nkMemory::StringView | name | ) |
Checks whether a user type is existing within the environment.
name | The name of the user type to check. It is possible to shortcut into namespaces using a syntax like ns0.ns1.UserTypeName. |
UserType* nkScripts::Environment::getUserType | ( | nkMemory::StringView | name | ) |
name | The name of the user type to retrieve. It is possible to shortcut into namespaces using a syntax like ns0.ns1.UserTypeName. |
Namespace* nkScripts::Environment::setNamespace | ( | nkMemory::StringView | name | ) |
Sets a namespace within the environment.
name | The name of the namespace to set. It is possible to shortcut into namespaces using a syntax like ns0.ns1.ns2. |
bool nkScripts::Environment::isNamespaceSet | ( | nkMemory::StringView | name | ) |
Checks whether a namespace is existing within the environment.
name | The name of the namespace to check. It is possible to shortcut into namespaces using a syntax like ns0.ns1.ns2. |
Namespace* nkScripts::Environment::getNamespace | ( | nkMemory::StringView | name | ) |
name | The name of the namespace to retrieve. It is possible to shortcut into namespaces using a syntax like ns0.ns1.ns2. |
bool nkScripts::Environment::callScriptFunction | ( | const ScriptObjectReference & | reference, |
const DataStack & | args, | ||
DataStack & | expectedOutput | ||
) |
Calls a script function from the C++ environment.
reference | The function reference, in the environment. |
args | The arguments to provide to the function, in a stack. |
expectedOutput | A ready stack that will receive the output of the called function. |
nkMemory::Buffer nkScripts::Environment::serializeScriptObject | ( | const ScriptObjectReference & | reference, |
bool | forwardUserDataOwnership = false |
||
) |
Serializes an object from the environment into a binary buffer. This can be used to pass a script object from one environment to another, for instance.
reference | The reference in the environment of the object to serialize. |
forwardUserDataOwnership | Whether the user data, defined by user types, should also forward their ownership to the serialization object (true) or not (false). \ This will ultimately transmit the ownsership to the environment where it is deserialized. |
ScriptObjectReference nkScripts::Environment::deserializeScriptObject | ( | nkMemory::BufferView< unsigned char > | object | ) |
Deserializes a binary buffer into a new object within the environment.
object | The serialized binary buffer to deserialize. |