aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/ScriptEngine/Common/Executor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Grid/ScriptEngine/Common/Executor.cs')
-rw-r--r--OpenSim/Grid/ScriptEngine/Common/Executor.cs88
1 files changed, 42 insertions, 46 deletions
diff --git a/OpenSim/Grid/ScriptEngine/Common/Executor.cs b/OpenSim/Grid/ScriptEngine/Common/Executor.cs
index 0732cbc..495c267 100644
--- a/OpenSim/Grid/ScriptEngine/Common/Executor.cs
+++ b/OpenSim/Grid/ScriptEngine/Common/Executor.cs
@@ -28,7 +28,6 @@
28 28
29using System; 29using System;
30using System.Collections.Generic; 30using System.Collections.Generic;
31using System.Text;
32using System.Reflection; 31using System.Reflection;
33using System.Runtime.Remoting.Lifetime; 32using System.Runtime.Remoting.Lifetime;
34 33
@@ -53,7 +52,7 @@ namespace OpenSim.Grid.ScriptEngine.Common
53 { 52 {
54 //Console.WriteLine("Executor: InitializeLifetimeService()"); 53 //Console.WriteLine("Executor: InitializeLifetimeService()");
55 // return null; 54 // return null;
56 ILease lease = (ILease)base.InitializeLifetimeService(); 55 ILease lease = (ILease) base.InitializeLifetimeService();
57 56
58 if (lease.CurrentState == LeaseState.Initial) 57 if (lease.CurrentState == LeaseState.Initial)
59 { 58 {
@@ -75,56 +74,56 @@ namespace OpenSim.Grid.ScriptEngine.Common
75 // Instead use RuntimeTypeHandle, RuntimeFieldHandle and RunTimeHandle (IntPtr) instead! 74 // Instead use RuntimeTypeHandle, RuntimeFieldHandle and RunTimeHandle (IntPtr) instead!
76 //try 75 //try
77 //{ 76 //{
78 if (m_Running == false) 77 if (m_Running == false)
79 { 78 {
80 // Script is inactive, do not execute! 79 // Script is inactive, do not execute!
81 return; 80 return;
82 } 81 }
83 82
84 string EventName = m_Script.State() + "_event_" + FunctionName; 83 string EventName = m_Script.State() + "_event_" + FunctionName;
85 84
86 //type.InvokeMember(EventName, BindingFlags.InvokeMethod, null, m_Script, args); 85 //type.InvokeMember(EventName, BindingFlags.InvokeMethod, null, m_Script, args);
87 86
88 //Console.WriteLine("ScriptEngine Executor.ExecuteEvent: \"" + EventName + "\""); 87 //Console.WriteLine("ScriptEngine Executor.ExecuteEvent: \"" + EventName + "\"");
89 88
90 if (Events.ContainsKey(EventName) == false) 89 if (Events.ContainsKey(EventName) == false)
90 {
91 // Not found, create
92 Type type = m_Script.GetType();
93 try
91 { 94 {
92 // Not found, create 95 MethodInfo mi = type.GetMethod(EventName);
93 Type type = m_Script.GetType(); 96 Events.Add(EventName, mi);
94 try
95 {
96 MethodInfo mi = type.GetMethod(EventName);
97 Events.Add(EventName, mi);
98 }
99 catch
100 {
101 // Event name not found, cache it as not found
102 Events.Add(EventName, null);
103 }
104 } 97 }
105 98 catch
106 // Get event
107 MethodInfo ev = null;
108 Events.TryGetValue(EventName, out ev);
109
110 if (ev == null) // No event by that name!
111 { 99 {
112 //Console.WriteLine("ScriptEngine Can not find any event named: \"" + EventName + "\""); 100 // Event name not found, cache it as not found
113 return; 101 Events.Add(EventName, null);
114 } 102 }
103 }
104
105 // Get event
106 MethodInfo ev = null;
107 Events.TryGetValue(EventName, out ev);
108
109 if (ev == null) // No event by that name!
110 {
111 //Console.WriteLine("ScriptEngine Can not find any event named: \"" + EventName + "\"");
112 return;
113 }
115 114
116 // Found 115 // Found
117 //try 116 //try
118 //{ 117 //{
119 // Invoke it 118 // Invoke it
120 ev.Invoke(m_Script, args); 119 ev.Invoke(m_Script, args);
121 120
122 //} 121 //}
123 //catch (Exception e) 122 //catch (Exception e)
124 //{ 123 //{
125 // // TODO: Send to correct place 124 // // TODO: Send to correct place
126 // Console.WriteLine("ScriptEngine Exception attempting to executing script function: " + e.ToString()); 125 // Console.WriteLine("ScriptEngine Exception attempting to executing script function: " + e.ToString());
127 //} 126 //}
128 127
129 128
130 //} 129 //}
@@ -136,8 +135,5 @@ namespace OpenSim.Grid.ScriptEngine.Common
136 { 135 {
137 m_Running = false; 136 m_Running = false;
138 } 137 }
139
140
141 } 138 }
142 139} \ No newline at end of file
143}