Interpreter that can install commands from dynamically loaded (compiled) scripts and run them. Script loader object of a type ScriptLoaderBase is accessed through a property that can be overridden in derived classes, such that a different script loader is used. This is importand because different libraries will be required for compilation in different contexts. Script loader property creates a new script loader on first access.
More...
List of all members.
Public Member Functions |
| LoadableScriptInterpreterBase () |
string | RunCommand (string commandName, string[] commandArguments) |
| Runs command with the specified name that is loaded on the current object.
|
void | AddCommandFromCode (string commandName, string code, string className, string[] initializationArguments) |
| Adds a new command whose execution is perfomed by an instance of a class that is dynamically compiled from the specified script code.
|
void | AddCommandFromCode (string commandName, string code, string[] initializationArguments) |
| Adds a new command whose execution is perfomed by an instance of a class that is dynamically compiled from the specified script code. Name of the class is extracted from the script code.
|
void | AddCommandFromFile (string commandName, string filePath, string className, string[] initializationArguments) |
| Adds a new command whose execution is perfomed by an instance of a class that is dynamically compiled from the script code contained in the specified file.
|
void | AddCommandFromFile (string commandName, string filePath, string[] initializationArguments) |
| Adds a new command whose execution is perfomed by an instance of a class that is dynamically compiled from the script code contained in the specified file. Name of the class is extracted from the script code.
|
Protected Attributes |
ScriptLoaderBase | _scriptLoader |
Properties |
object | Lock [get] |
| This object's central lock object to be used by other object. Do not use this object for locking in class' methods, for this you should use InternalLock.
|
virtual ScriptLoaderBase | ScriptLoader [get, set] |
| Script loader that is used to load loadable script classes that will be used for execution of commands.
|
SortedList< string,
ILoadableScript > | Commands [get] |
| Sorted list that contains commands as key-value pairs where the key is command name and the corresponding value is a loadable script object of type ILoadableScript that can be executd.
|
ILoadableScript | this [string commandName] [get, set] |
Private Attributes |
object | _mainLock = new object() |
SortedList< string,
ILoadableScript > | _commands = new SortedList<string, ILoadableScript>() |
Detailed Description
Interpreter that can install commands from dynamically loaded (compiled) scripts and run them. Script loader object of a type ScriptLoaderBase is accessed through a property that can be overridden in derived classes, such that a different script loader is used. This is importand because different libraries will be required for compilation in different contexts. Script loader property creates a new script loader on first access.
$A Igor Oct09;
Constructor & Destructor Documentation
IG::Lib::LoadableScriptInterpreterBase::LoadableScriptInterpreterBase |
( |
| ) |
[inline] |
Member Function Documentation
string IG::Lib::LoadableScriptInterpreterBase::RunCommand |
( |
string |
commandName, |
|
|
string[] |
commandArguments |
|
) |
| [inline] |
Runs command with the specified name that is loaded on the current object.
- Parameters:
-
commandName | Name of the command. |
commandArguments | Command arguments. |
- Returns:
- Result of the command.
void IG::Lib::LoadableScriptInterpreterBase::AddCommandFromCode |
( |
string |
commandName, |
|
|
string |
code, |
|
|
string |
className, |
|
|
string[] |
initializationArguments |
|
) |
| [inline] |
Adds a new command whose execution is perfomed by an instance of a class that is dynamically compiled from the specified script code.
- Parameters:
-
commandName | Interpreter's name of the command; added command is installed under this name on the current interpreter. |
code | Script code containing definition of the loadable class that contains executable code of the command. |
className | Name of the class containing loadable script code. |
initializationArguments | Initialization arguments for the created object that will perform execution of the added command. |
void IG::Lib::LoadableScriptInterpreterBase::AddCommandFromCode |
( |
string |
commandName, |
|
|
string |
code, |
|
|
string[] |
initializationArguments |
|
) |
| [inline] |
Adds a new command whose execution is perfomed by an instance of a class that is dynamically compiled from the specified script code. Name of the class is extracted from the script code.
- Parameters:
-
commandName | Interpreter's name of the command; added command is installed under this name on the current interpreter. |
code | Script code containing definition of the loadable class that contains executable code of the command. |
initializationArguments | Initialization arguments for the created object that will perform execution of the added command. |
void IG::Lib::LoadableScriptInterpreterBase::AddCommandFromFile |
( |
string |
commandName, |
|
|
string |
filePath, |
|
|
string |
className, |
|
|
string[] |
initializationArguments |
|
) |
| [inline] |
Adds a new command whose execution is perfomed by an instance of a class that is dynamically compiled from the script code contained in the specified file.
- Parameters:
-
commandName | Interpreter's name of the command; added command is installed under this name on the current interpreter. |
filePath | Path to the file containing script code containing definition of the loadable class that contains executable code of the command. |
className | Name of the class containing loadable script code. |
initializationArguments | Initialization arguments for the created object that will perform execution of the added command. |
void IG::Lib::LoadableScriptInterpreterBase::AddCommandFromFile |
( |
string |
commandName, |
|
|
string |
filePath, |
|
|
string[] |
initializationArguments |
|
) |
| [inline] |
Adds a new command whose execution is perfomed by an instance of a class that is dynamically compiled from the script code contained in the specified file. Name of the class is extracted from the script code.
- Parameters:
-
commandName | Interpreter's name of the command; added command is installed under this name on the current interpreter. |
filePath | Path to the file containing script code containing definition of the loadable class that contains executable code of the command. |
initializationArguments | Initialization arguments for the created object that will perform execution of the added command. |
Member Data Documentation
Property Documentation
object IG::Lib::LoadableScriptInterpreterBase::Lock [get] |
This object's central lock object to be used by other object. Do not use this object for locking in class' methods, for this you should use InternalLock.
Implements IG::Lib::ILockable.
virtual ScriptLoaderBase IG::Lib::LoadableScriptInterpreterBase::ScriptLoader [get, set] |
Script loader that is used to load loadable script classes that will be used for execution of commands.
SortedList<string, ILoadableScript> IG::Lib::LoadableScriptInterpreterBase::Commands [get] |
Sorted list that contains commands as key-value pairs where the key is command name and the corresponding value is a loadable script object of type ILoadableScript that can be executd.
ILoadableScript IG::Lib::LoadableScriptInterpreterBase::this[string commandName] [get, set] |
The documentation for this class was generated from the following file: