| IGLib 1.4 The IGLib base library for development of numerical, technical and business applications.

- Main Page
- Namespaces
- Classes
- Files
- Directories

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Protected Attributes | Properties | Private Attributes

# IG::Lib::LoadableScriptInterpreterBase Class Reference

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...

Inheritance diagram for IG::Lib::LoadableScriptInterpreterBase:
[legend]
Collaboration diagram for IG::Lib::LoadableScriptInterpreterBase:
[legend]

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

object IG::Lib::LoadableScriptInterpreterBase::_mainLock = new object()`[private]`

ScriptLoaderBase IG::Lib::LoadableScriptInterpreterBase::_scriptLoader`[protected]`

SortedList<string, ILoadableScript> IG::Lib::LoadableScriptInterpreterBase::_commands = new SortedList<string, ILoadableScript>()`[private]`

## 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:

- LoadableScriptInterpreter.cs

All Classes Namespaces Files Functions Variables Enumerations Properties Events