ScriptStack 1.0.0
A .NET scripting language
Lade ...
Suche ...
Keine Treffer
ScriptStack.Manager Klassenreferenz

API entry point. Mehr ...

Öffentliche Methoden

 Manager ()
 A Manager object is responsible for memory management, type evaluation and loading of plugins.
 
void LoadComponents (string relativeDirectoryPath)
 
void LoadComponent (string relativeDirectoryPath)
 
bool IsRegistered (string routine)
 
void Register (Model model)
 
void UnRegister (Model model)
 
void Register (Routine routine, Host host)
 
void UnRegister (string routine)
 
void Register (Routine routine)
 Register a new Routine.
 
void ClearActiveLocks ()
 

Propertys

String Name [get, set]
 
Scanner Scanner [get, set]
 A Scanner reference.
 
Memory SharedMemory [get]
 
ReadOnlyDictionary< String, RoutineRoutines [get]
 
bool Debug [get, set]
 
bool Optimize [get, set]
 
ReadOnlyDictionary< object, InterpreterActiveLocks [get]
 

Private Attribute

string name
 
Scanner scanner
 
Memory sharedMemory
 
Dictionary< string, Routineroutines
 
Dictionary< object, Interpreterlocks
 
bool debug
 
bool optimize
 

Ausführliche Beschreibung

Beschreibung der Konstruktoren und Destruktoren

◆ Manager()

ScriptStack.Manager.Manager ( )

A Manager object is responsible for memory management, type evaluation and loading of plugins.

50 {
51
52 scanner = new ScannerPrototype();
53
55
57
59
60 debug = false;
61
62 optimize = true;
63
64 }
Definition ReadOnlyDictionary.cs:19
Scanner scanner
Definition Manager.cs:26
Memory sharedMemory
Definition Manager.cs:27
bool debug
Definition Manager.cs:30
Dictionary< string, Routine > routines
Definition Manager.cs:28
Dictionary< object, Interpreter > locks
Definition Manager.cs:29
bool optimize
Definition Manager.cs:31
Definition Memory.cs:16
static Memory AllocateSharedMemory()
Definition Memory.cs:55

Benutzt ScriptStack.Runtime.Memory.AllocateSharedMemory(), ScriptStack.Manager.debug, ScriptStack.Manager.locks, ScriptStack.Manager.optimize, ScriptStack.Manager.routines, ScriptStack.Manager.scanner und ScriptStack.Manager.sharedMemory.

Dokumentation der Elementfunktionen

◆ ClearActiveLocks()

void ScriptStack.Manager.ClearActiveLocks ( )

◆ IsRegistered()

bool ScriptStack.Manager.IsRegistered ( string routine)

◆ LoadComponent()

void ScriptStack.Manager.LoadComponent ( string relativeDirectoryPath)
118 {
119
120 Assembly assembly = null;
121 try
122 {
124 }
125 catch (Exception e) { }
126
127 Type[] arrayTypes = assembly.GetExportedTypes();
128
129 foreach (Type type in arrayTypes)
130 {
131
133 continue;
134
136 try
137 {
138 constructorInfo = type.GetConstructor(new Type[0]);
139 }
140 catch (Exception e) { continue; }
141
142 object objectHostModule = constructorInfo.Invoke(new object[0]);
144
145 /*
146 Console.WriteLine("[INFO] Lade Modul '" + hostModule.ToString() + "'");
147 foreach(Routine r in hostModule.Routines)
148 Console.WriteLine("[INFO] Lade Routine '" + r.Name.ToString() + "'");
149 */
150
152
153 }
154
155 }
void Register(Model model)
Definition Manager.cs:170
A Model is an abstract representation of an object your Host works with. It implements Routine's and ...
Definition Model.cs:90

Benutzt ScriptStack.Manager.Register().

◆ LoadComponents()

void ScriptStack.Manager.LoadComponents ( string relativeDirectoryPath)
67 {
68
69 string path = relativeDirectoryPath; // System.AppDomain.CurrentDomain.BaseDirectory;
70
71 foreach (string dll in System.IO.Directory.GetFiles(path, "*.dll"))
72 {
73
74 if (dll == path + "ScriptStack.dll")
75 continue;
76
77 Assembly assembly = null;
78
79 try
80 {
81 assembly = Assembly.LoadFile(dll);
82 }
83 catch (Exception e) { }
84
85 Type[] arrayTypes = assembly.GetExportedTypes();
86
87 foreach (Type type in arrayTypes)
88 {
89
91 continue;
92
94 try
95 {
96 constructorInfo = type.GetConstructor(new Type[0]);
97 }
98 catch (Exception e) { continue; }
99
100 object objectHostModule = constructorInfo.Invoke(new object[0]);
102
103 /*
104 Console.WriteLine("[INFO] Lade Modul '" + hostModule.ToString() + "'");
105 foreach(Routine r in hostModule.Routines)
106 Console.WriteLine("[INFO] Lade Routine '" + r.Name.ToString() + "'");
107 */
108
110
111 }
112
113 }
114
115 }

Benutzt ScriptStack.Manager.Register().

◆ Register() [1/3]

void ScriptStack.Manager.Register ( Model model)
171 {
172
173 foreach (Routine routine in model.Routines)
175
176 }
A Routine is an abstract representation of a method.
Definition Routine.cs:70

Benutzt ScriptStack.Manager.Register().

Wird benutzt von ScriptStack.Manager.LoadComponent(), ScriptStack.Manager.LoadComponents(), ScriptStack.Manager.Register() und ScriptStack.Manager.Register().

◆ Register() [2/3]

void ScriptStack.Manager.Register ( Routine routine)

Register a new Routine.

Parameter
routine
215 {
216 Register(routine, null);
217 }

Benutzt ScriptStack.Manager.Register().

◆ Register() [3/3]

void ScriptStack.Manager.Register ( Routine routine,
Host host )
187 {
188
189 string name = routine.Name;
190
192 throw new ScriptStackException("Die Routine '" + name + "' ist bereits registriert.");
193
194 routine.Handler = host;
195
197
198 }
string name
Definition Manager.cs:25
Definition ScriptStackException.cs:9

Benutzt ScriptStack.Collections.ReadOnlyDictionary< TKey, TValue >.ContainsKey(), ScriptStack.Manager.name und ScriptStack.Manager.routines.

◆ UnRegister() [1/2]

void ScriptStack.Manager.UnRegister ( Model model)
179 {
180
181 foreach (Routine routine in model.Routines)
182 UnRegister(routine.Name);
183
184 }
void UnRegister(Model model)
Definition Manager.cs:178

Benutzt ScriptStack.Manager.UnRegister().

Wird benutzt von ScriptStack.Manager.UnRegister().

◆ UnRegister() [2/2]

void ScriptStack.Manager.UnRegister ( string routine)

Dokumentation der Datenelemente

◆ debug

bool ScriptStack.Manager.debug
private

Wird benutzt von ScriptStack.Manager.Manager().

◆ locks

Dictionary<object, Interpreter> ScriptStack.Manager.locks
private

◆ name

string ScriptStack.Manager.name
private

Wird benutzt von ScriptStack.Manager.Register().

◆ optimize

bool ScriptStack.Manager.optimize
private

Wird benutzt von ScriptStack.Manager.Manager().

◆ routines

◆ scanner

Scanner ScriptStack.Manager.scanner
private

Wird benutzt von ScriptStack.Manager.Manager().

◆ sharedMemory

Memory ScriptStack.Manager.sharedMemory
private

Wird benutzt von ScriptStack.Manager.Manager().

Dokumentation der Propertys

◆ ActiveLocks

ReadOnlyDictionary<object, Interpreter> ScriptStack.Manager.ActiveLocks
get
262 {
264 }

◆ Debug

bool ScriptStack.Manager.Debug
getset
250 {
251 get { return debug; }
252 set { debug = value; }
253 }

Wird benutzt von ScriptStack.Runtime.Script.Script().

◆ Name

String ScriptStack.Manager.Name
getset
158 {
159 get { return name; }
160 set {
161 name = value;
162 }
163 }

◆ Optimize

bool ScriptStack.Manager.Optimize
getset
256 {
257 get { return optimize; }
258 set { optimize = value; }
259 }

Wird benutzt von ScriptStack.Runtime.Script.Script().

◆ Routines

ReadOnlyDictionary<String, Routine> ScriptStack.Manager.Routines
get
242 {
243 get
244 {
246 }
247 }

Wird benutzt von ScriptStack.Compiler.Parser.RoutineCall().

◆ Scanner

Scanner ScriptStack.Manager.Scanner
getset

A Scanner reference.

232 {
233 get { return scanner; }
234 set { scanner = value; }
235 }

Wird benutzt von ScriptStack.Runtime.Script.Scan().

◆ SharedMemory

Memory ScriptStack.Manager.SharedMemory
get

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: