OpenSim
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
Public Member Functions | Public Attributes | Properties | List of all members
OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance Class Reference
Inheritance diagram for OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance:
Inheritance graph
[legend]
Collaboration diagram for OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance:
Collaboration graph
[legend]

Public Member Functions

void ClearQueue ()
 
 ScriptInstance (IScriptEngine engine, SceneObjectPart part, TaskInventoryItem item, int startParam, bool postOnRez, int maxScriptQueue)
 
bool Load (IScript script, EventWaitHandle coopSleepHandle, string assemblyPath, string dataPath, StateSource stateSource, bool coopTermination)
 Load the script from an assembly into an AppDomain. More...
 
void Init ()
 
void DestroyScriptInstance ()
 
void RemoveState ()
 
void VarDump (Dictionary< string, object > vars)
 
void Start ()
 
bool Stop (int timeout, bool clearEventQueue=false)
 Stop the script instance. More...
 
void SetState (string state)
 
void PostEvent (EventParams data)
 Post an event to this script instance. More...
 
object EventProcessor ()
 Process the next event queued for this script More...
 
int EventTime ()
 
void ResetScript (int timeout)
 Reset the script. More...
 
void ApiResetScript ()
 Reset the script. More...
 
Dictionary< string, object > GetVars ()
 
void SetVars (Dictionary< string, object > vars)
 
DetectParams GetDetectParams (int idx)
 
UUID GetDetectID (int idx)
 
void SaveState ()
 
IScriptApi GetApi (string name)
 
override string ToString ()
 
string GetAssemblyName ()
 
string GetXMLState ()
 
void Suspend ()
 
void Resume ()
 

Public Attributes

Object[] PluginData = new Object[0]
 

Properties

bool StatePersistedHere [get]
 
int DebugLevel [get, set]
 
WaitHandle CoopWaitHandle [get, set]
 
Stopwatch ExecutionTimer [get, set]
 
Dictionary< KeyValuePair< int,
int >, KeyValuePair< int, int > > 
LineMap [get, set]
 
double MinEventDelay [get, set]
 Used by llMinEventDelay to suppress events happening any faster than this speed. This currently restricts all events in one go. Not sure if each event type has its own check so take the simple route first. More...
 
bool Running [get, set]
 
bool Suspended [get, set]
 
bool ShuttingDown [get, set]
 
string State [get, set]
 
bool StayStopped [get, set]
 
IScriptEngine Engine [get, set]
 
UUID AppDomain [get, set]
 
SceneObjectPart Part [get, set]
 
string PrimName [get, set]
 
string ScriptName [get, set]
 
UUID ItemID [get, set]
 
UUID ObjectID [get]
 
uint LocalID [get]
 
UUID RootObjectID [get]
 
uint RootLocalID [get]
 
UUID AssetID [get, set]
 
Queue EventQueue [get, set]
 
long EventsQueued [get]
 
long EventsProcessed [get, set]
 
int StartParam [get, set]
 
TaskInventoryItem ScriptTask [get, set]
 
DateTime TimeStarted [get, set]
 
MetricsCollectorTime ExecutionTime [get, set]
 
UUID RegionID [get]
 
- Properties inherited from OpenSim.Region.ScriptEngine.Interfaces.IScriptInstance
int DebugLevel [get, set]
 Debug level for this script instance. More...
 
bool Running [get, set]
 Is the script currently running? More...
 
bool Suspended [get, set]
 Is the script suspended? More...
 
bool ShuttingDown [get, set]
 Is the script shutting down? More...
 
bool StayStopped [get, set]
 When stopping the script: should it remain stopped permanently (i.e., save !Running in its state)? More...
 
string State [get, set]
 Script state More...
 
bool StatePersistedHere [get]
 If true then the engine is responsible for persisted state. If false then some other component may persist state (e.g. attachments persisting in assets). More...
 
DateTime TimeStarted [get]
 Time the script was last started More...
 
MetricsCollectorTime ExecutionTime [get]
 Collects information about how long the script was executed. More...
 
SceneObjectPart Part [get]
 Scene part in which this script instance is contained. More...
 
IScriptEngine Engine [get]
 
UUID AppDomain [get, set]
 
string PrimName [get]
 
string ScriptName [get]
 
UUID ItemID [get]
 
UUID ObjectID [get]
 
UUID RootObjectID [get]
 UUID of the root object for the linkset that the script is in. More...
 
uint RootLocalID [get]
 Local id of the root object for the linkset that the script is in. More...
 
uint LocalID [get]
 
UUID AssetID [get]
 
TaskInventoryItem ScriptTask [get]
 Inventory item containing the script used. More...
 
Queue EventQueue [get]
 
long EventsQueued [get]
 Number of events queued for processing. More...
 
long EventsProcessed [get]
 Number of events processed by this script instance. More...
 
int StartParam [get, set]
 
WaitHandle CoopWaitHandle [get]
 
Stopwatch ExecutionTimer [get]
 
Dictionary< KeyValuePair< int,
int >, KeyValuePair< int, int > > 
LineMap [get, set]
 
double MinEventDelay [set]
 
UUID RegionID [get]
 

Detailed Description

Definition at line 59 of file ScriptInstance.cs.

Constructor & Destructor Documentation

OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ScriptInstance ( IScriptEngine  engine,
SceneObjectPart  part,
TaskInventoryItem  item,
int  startParam,
bool  postOnRez,
int  maxScriptQueue 
)
inline

Definition at line 234 of file ScriptInstance.cs.

Member Function Documentation

void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ApiResetScript ( )
inline

Reset the script.

This must not be called by any thread other than the one executing the scripts current event. This is because there is no wait or abort logic if another thread is in the middle of processing a script event. Such an external thread should use ResetScript() instead.

Implements OpenSim.Region.ScriptEngine.Interfaces.IScriptInstance.

Definition at line 1043 of file ScriptInstance.cs.

Here is the call graph for this function:

void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ClearQueue ( )
inline
void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.DestroyScriptInstance ( )
inline
object OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.EventProcessor ( )
inline

Process the next event queued for this script

Returns

Implements OpenSim.Region.ScriptEngine.Interfaces.IScriptInstance.

Definition at line 774 of file ScriptInstance.cs.

int OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.EventTime ( )
inline
IScriptApi OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.GetApi ( string  name)
inline
string OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.GetAssemblyName ( )
inline
UUID OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.GetDetectID ( int  idx)
inline
DetectParams OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.GetDetectParams ( int  idx)
inline
Dictionary<string, object> OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.GetVars ( )
inline
string OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.GetXMLState ( )
inline
void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Init ( )
inline
bool OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Load ( IScript  script,
EventWaitHandle  coopSleepHandle,
string  assemblyPath,
string  dataPath,
StateSource  stateSource,
bool  coopTermination 
)
inline

Load the script from an assembly into an AppDomain.

Parameters
dom
assembly
dataPathPath for all script associated data (state, etc.). In a multi-region set up with all scripts loading into the same AppDomain this may not be the same place as the DLL itself.
stateSource
Returns
false if load failed, true if suceeded

Definition at line 283 of file ScriptInstance.cs.

void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.PostEvent ( EventParams  data)
inline

Post an event to this script instance.

The request to run the event is sent

Parameters
data

Implements OpenSim.Region.ScriptEngine.Interfaces.IScriptInstance.

Definition at line 693 of file ScriptInstance.cs.

void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.RemoveState ( )
inline
void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ResetScript ( int  timeout)
inline

Reset the script.

This must not be called by a thread that is in the process of handling an event for this script. Otherwise there is a danger that it will self-abort and not complete the reset. Such a thread must call ApiResetScript() instead.

Parameters
timeoutHow many milliseconds we will wait for an existing script event to finish before forcibly aborting that event prior to script reset.

Implements OpenSim.Region.ScriptEngine.Interfaces.IScriptInstance.

Definition at line 1005 of file ScriptInstance.cs.

Here is the call graph for this function:

void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Resume ( )
inline
void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.SaveState ( )
inline
void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.SetState ( string  state)
inline
void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.SetVars ( Dictionary< string, object >  vars)
inline
void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Start ( )
inline
bool OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Stop ( int  timeout,
bool  clearEventQueue = false 
)
inline

Stop the script instance.

This must not be called by a thread that is in the process of handling an event for this script. Otherwise there is a danger that it will self-abort and not complete the reset.

Parameters
timeout

How many milliseconds we will wait for an existing script event to finish before forcibly aborting that event.

Parameters
clearEventQueueIf true then the event queue is also cleared
Returns
true if the script was successfully stopped, false otherwise

Implements OpenSim.Region.ScriptEngine.Interfaces.IScriptInstance.

Definition at line 553 of file ScriptInstance.cs.

void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Suspend ( )
inline
override string OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ToString ( )
inline

Definition at line 1187 of file ScriptInstance.cs.

void OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.VarDump ( Dictionary< string, object >  vars)
inline

Definition at line 519 of file ScriptInstance.cs.

Member Data Documentation

Object [] OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.PluginData = new Object[0]

Definition at line 111 of file ScriptInstance.cs.

Property Documentation

UUID OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.AppDomain
getset

Definition at line 180 of file ScriptInstance.cs.

UUID OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.AssetID
getset

Definition at line 198 of file ScriptInstance.cs.

WaitHandle OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.CoopWaitHandle
getset

Definition at line 104 of file ScriptInstance.cs.

int OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.DebugLevel
getset

Definition at line 102 of file ScriptInstance.cs.

IScriptEngine OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Engine
getset

Definition at line 178 of file ScriptInstance.cs.

Queue OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.EventQueue
getset

Definition at line 200 of file ScriptInstance.cs.

long OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.EventsProcessed
getset

Definition at line 211 of file ScriptInstance.cs.

long OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.EventsQueued
get

Definition at line 203 of file ScriptInstance.cs.

MetricsCollectorTime OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ExecutionTime
getset

Definition at line 219 of file ScriptInstance.cs.

Stopwatch OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ExecutionTimer
getset

Definition at line 105 of file ScriptInstance.cs.

UUID OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ItemID
getset

Definition at line 188 of file ScriptInstance.cs.

Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int> > OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.LineMap
getset

Definition at line 107 of file ScriptInstance.cs.

uint OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.LocalID
get

Definition at line 192 of file ScriptInstance.cs.

double OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.MinEventDelay
getset

Used by llMinEventDelay to suppress events happening any faster than this speed. This currently restricts all events in one go. Not sure if each event type has its own check so take the simple route first.

Definition at line 119 of file ScriptInstance.cs.

UUID OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ObjectID
get

Definition at line 190 of file ScriptInstance.cs.

SceneObjectPart OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Part
getset

Definition at line 182 of file ScriptInstance.cs.

string OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.PrimName
getset

Definition at line 184 of file ScriptInstance.cs.

UUID OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.RegionID
get

Definition at line 1262 of file ScriptInstance.cs.

uint OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.RootLocalID
get

Definition at line 196 of file ScriptInstance.cs.

UUID OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.RootObjectID
get

Definition at line 194 of file ScriptInstance.cs.

bool OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Running
getset

Definition at line 134 of file ScriptInstance.cs.

string OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ScriptName
getset

Definition at line 186 of file ScriptInstance.cs.

TaskInventoryItem OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ScriptTask
getset

Definition at line 215 of file ScriptInstance.cs.

bool OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.ShuttingDown
getset

Definition at line 172 of file ScriptInstance.cs.

int OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.StartParam
getset

Definition at line 213 of file ScriptInstance.cs.

string OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.State
getset

Definition at line 174 of file ScriptInstance.cs.

bool OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.StatePersistedHere
get

Definition at line 63 of file ScriptInstance.cs.

bool OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.StayStopped
getset

Definition at line 176 of file ScriptInstance.cs.

bool OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Suspended
getset

Definition at line 147 of file ScriptInstance.cs.

DateTime OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.TimeStarted
getset

Definition at line 217 of file ScriptInstance.cs.


The documentation for this class was generated from the following file: