aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMelanie Thielker2008-09-13 14:40:42 +0000
committerMelanie Thielker2008-09-13 14:40:42 +0000
commitfdb24c46ac02447e05662227180927c9bd270276 (patch)
tree7a56f38ab6bc761330e72d5c0b04a3c16a8dfbb1 /OpenSim/Region
parentChange all LSL functions to return LSL types instead of base types. (diff)
downloadopensim-SC-fdb24c46ac02447e05662227180927c9bd270276.zip
opensim-SC-fdb24c46ac02447e05662227180927c9bd270276.tar.gz
opensim-SC-fdb24c46ac02447e05662227180927c9bd270276.tar.bz2
opensim-SC-fdb24c46ac02447e05662227180927c9bd270276.tar.xz
Provide a GetApi method on the IScriptEngine to get a named API reference
This allows cross-api method calls on the implementation and also allows "Meta APIs" that only provide common functionality to other APIs
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs7
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs8
4 files changed, 18 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs
index 4b46c21..43c2487 100644
--- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs
+++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs
@@ -58,6 +58,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
58 void SetState(UUID itemID, string newState); 58 void SetState(UUID itemID, string newState);
59 int GetStartParameter(UUID itemID); 59 int GetStartParameter(UUID itemID);
60 IScriptWorkItem QueueEventHandler(object parms); 60 IScriptWorkItem QueueEventHandler(object parms);
61 IScriptApi GetApi(UUID itemID, string name);
61 62
62 DetectParams GetDetectParams(UUID item, int number); 63 DetectParams GetDetectParams(UUID item, int number);
63 } 64 }
diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
index c07f093..169955c 100644
--- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
+++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
@@ -85,5 +85,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
85 DetectParams GetDetectParams(int idx); 85 DetectParams GetDetectParams(int idx);
86 UUID GetDetectID(int idx); 86 UUID GetDetectID(int idx);
87 void SaveState(string assembly); 87 void SaveState(string assembly);
88
89 IScriptApi GetApi(string name);
88 } 90 }
89} 91}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
index 1ee6f77..8f6108d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
@@ -714,5 +714,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
714 throw new Exception("Completed persistence save, but no file was created"); 714 throw new Exception("Completed persistence save, but no file was created");
715 } 715 }
716 } 716 }
717
718 public IScriptApi GetApi(string name)
719 {
720 if (m_Apis.ContainsKey(name))
721 return m_Apis[name];
722 return null;
723 }
717 } 724 }
718} 725}
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 6582686..0dc1ade 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -869,5 +869,13 @@ namespace OpenSim.Region.ScriptEngine.XEngine
869 869
870 DoBackup(new Object[] {0}); 870 DoBackup(new Object[] {0});
871 } 871 }
872
873 public IScriptApi GetApi(UUID itemID, string name)
874 {
875 IScriptInstance instance = GetInstance(itemID);
876 if (instance == null)
877 return null;
878 return instance.GetApi(name);
879 }
872 } 880 }
873} 881}