Simplify the module invocation registration. The types and method name
can be pulled fromt he delegate so we don't need to pass them explicitly0.7.4.1
							parent
							
								
									a07fa0395f
								
							
						
					
					
						commit
						cb44808504
					
				|  | @ -46,7 +46,8 @@ namespace OpenSim.Region.Framework.Interfaces | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         event ScriptCommand OnScriptCommand; |         event ScriptCommand OnScriptCommand; | ||||||
| 
 | 
 | ||||||
|         void RegisterScriptInvocation(string name, ScriptInvocation fn, Type[] csig, Type rsig); |         void RegisterScriptInvocation(ScriptInvocation fn); | ||||||
|  |         ScriptInvocation[] GetScriptInvocationList(); | ||||||
| 
 | 
 | ||||||
|         ScriptInvocation LookupScriptInvocation(string fname); |         ScriptInvocation LookupScriptInvocation(string fname); | ||||||
|         string LookupModInvocation(string fname); |         string LookupModInvocation(string fname); | ||||||
|  |  | ||||||
|  | @ -126,14 +126,30 @@ namespace OpenSim.Region.CoreModules.Scripting.ScriptModuleComms | ||||||
|             m_scriptModule.PostScriptEvent(script, "link_message", args); |             m_scriptModule.PostScriptEvent(script, "link_message", args); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public void RegisterScriptInvocation(string fname, ScriptInvocation fcall, Type[] csig, Type rsig) |         public void RegisterScriptInvocation(ScriptInvocation fcall) | ||||||
|         { |         { | ||||||
|             lock (m_scriptInvocation) |             lock (m_scriptInvocation) | ||||||
|             { |             { | ||||||
|                 m_scriptInvocation[fname] = new ScriptInvocationData(fname,fcall,csig,rsig); |                 ParameterInfo[] parameters = fcall.Method.GetParameters (); | ||||||
|  |                 Type[] parmTypes = new Type[parameters.Length]; | ||||||
|  |                 for (int i = 0 ; i < parameters.Length ; i++) | ||||||
|  |                     parmTypes[i] = parameters[i].ParameterType; | ||||||
|  |                 m_scriptInvocation[fcall.Method.Name] = new ScriptInvocationData(fcall.Method.Name, fcall, parmTypes, fcall.Method.ReturnType); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|          |          | ||||||
|  |         public ScriptInvocation[] GetScriptInvocationList() | ||||||
|  |         { | ||||||
|  |             List<ScriptInvocation> ret = new List<ScriptInvocation>(); | ||||||
|  | 
 | ||||||
|  |             lock (m_scriptInvocation) | ||||||
|  |             { | ||||||
|  |                 foreach (ScriptInvocationData d in m_scriptInvocation.Values) | ||||||
|  |                     ret.Add(d.ScriptInvocationFn); | ||||||
|  |             } | ||||||
|  |             return ret.ToArray(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         public string LookupModInvocation(string fname) |         public string LookupModInvocation(string fname) | ||||||
|         { |         { | ||||||
|             lock (m_scriptInvocation) |             lock (m_scriptInvocation) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Melanie
						Melanie