From 402ff75d781d6f4e38eee8884d7b4411bb756c9b Mon Sep 17 00:00:00 2001
From: Mic Bowman
Date: Thu, 15 Mar 2012 13:16:02 -0700
Subject: Adds a new script command 'modInvoke' to invoke registered functions
from region modules. The LSL translator is extended to generate the modInvoke
format of commands for directly inlined function calls.
A region module can register a function Test() with the name "Test".
LSL code can call that function as "Test()". The compiler will translate
that invocation into modInvoke("Test", ...)
---
OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs | 10 ++++++++++
1 file changed, 10 insertions(+)
(limited to 'OpenSim/Region/Framework/Interfaces')
diff --git a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
index d7fa316..bb4c788 100644
--- a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
+++ b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
@@ -31,6 +31,7 @@ using OpenMetaverse;
namespace OpenSim.Region.Framework.Interfaces
{
public delegate void ScriptCommand(UUID script, string id, string module, string command, string k);
+ public delegate object ScriptInvocation(UUID script, object[] parms);
///
/// Interface for communication between OpenSim modules and in-world scripts
@@ -45,6 +46,15 @@ namespace OpenSim.Region.Framework.Interfaces
///
event ScriptCommand OnScriptCommand;
+ void RegisterScriptInvocation(string name, ScriptInvocation fn, Type[] csig, Type rsig);
+
+ ScriptInvocation LookupScriptInvocation(string fname);
+ string LookupModInvocation(string fname);
+ Type[] LookupTypeSignature(string fname);
+ Type LookupReturnType(string fname);
+
+ object InvokeOperation(UUID scriptId, string fname, params object[] parms);
+
///
/// Send a link_message event to an in-world script
///
--
cgit v1.1