From 64fad2f80e1bf7a73b7e92adf4462e1b6f9aa335 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Sun, 11 Nov 2012 16:44:59 -0800
Subject: Two more modules converted: XmlRpcGridRouterModule and
 XmlRpcRouterModule.

---
 .../XmlRpcRouterModule/XmlRpcGridRouterModule.cs   | 36 ++++++++++++++-----
 .../XmlRpcRouterModule/XmlRpcRouterModule.cs       | 42 ++++++++++++++++------
 2 files changed, 60 insertions(+), 18 deletions(-)

diff --git a/OpenSim/Region/OptionalModules/Scripting/XmlRpcRouterModule/XmlRpcGridRouterModule.cs b/OpenSim/Region/OptionalModules/Scripting/XmlRpcRouterModule/XmlRpcGridRouterModule.cs
index 2187449..6120a81 100644
--- a/OpenSim/Region/OptionalModules/Scripting/XmlRpcRouterModule/XmlRpcGridRouterModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/XmlRpcRouterModule/XmlRpcGridRouterModule.cs
@@ -32,6 +32,7 @@ using System.Reflection;
 using log4net;
 using Nini.Config;
 using OpenMetaverse;
+using Mono.Addins;
 
 using OpenSim.Framework;
 using OpenSim.Framework.Communications;
@@ -49,7 +50,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.XmlRpcGridRouterModule
         public string uri;
     }
 
-    public class XmlRpcGridRouter : IRegionModule, IXmlRpcRouter
+    [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "XmlRpcGridRouter")]
+    public class XmlRpcGridRouter : INonSharedRegionModule, IXmlRpcRouter
     {
         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
         
@@ -59,9 +61,11 @@ namespace OpenSim.Region.OptionalModules.Scripting.XmlRpcGridRouterModule
         private bool m_Enabled = false;
         private string m_ServerURI = String.Empty;
 
-        public void Initialise(Scene scene, IConfigSource config)
+        #region INonSharedRegionModule
+
+        public void Initialise(IConfigSource config)
         {
-            IConfig startupConfig = config.Configs["Startup"];
+            IConfig startupConfig = config.Configs["XMLRPC"];
             if (startupConfig == null)
                 return;
 
@@ -74,16 +78,30 @@ namespace OpenSim.Region.OptionalModules.Scripting.XmlRpcGridRouterModule
                     m_log.Error("[XMLRPC GRID ROUTER] Module configured but no URI given. Disabling");
                     return;
                 }
-
-                scene.RegisterModuleInterface<IXmlRpcRouter>(this);
                 m_Enabled = true;
             }
         }
 
-        public void PostInitialise()
+        public void AddRegion(Scene scene)
+        {
+            if (!m_Enabled)
+                return;
+
+            scene.RegisterModuleInterface<IXmlRpcRouter>(this);
+        }
+
+        public void RegionLoaded(Scene scene)
         {
         }
 
+        public void RemoveRegion(Scene scene)
+        {
+            if (!m_Enabled)
+                return;
+
+            scene.UnregisterModuleInterface<IXmlRpcRouter>(this);
+        }
+
         public void Close()
         {
         }
@@ -93,11 +111,13 @@ namespace OpenSim.Region.OptionalModules.Scripting.XmlRpcGridRouterModule
             get { return "XmlRpcGridRouterModule"; }
         }
 
-        public bool IsSharedModule
+        public Type ReplaceableInterface
         {
-            get { return false; }
+            get { return null; }
         }
 
+        #endregion
+
         public void RegisterNewReceiver(IScriptModule scriptEngine, UUID channel, UUID objectID, UUID itemID, string uri)
         {
             if (!m_Channels.ContainsKey(itemID))
diff --git a/OpenSim/Region/OptionalModules/Scripting/XmlRpcRouterModule/XmlRpcRouterModule.cs b/OpenSim/Region/OptionalModules/Scripting/XmlRpcRouterModule/XmlRpcRouterModule.cs
index 32659c8..4783f4c 100644
--- a/OpenSim/Region/OptionalModules/Scripting/XmlRpcRouterModule/XmlRpcRouterModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/XmlRpcRouterModule/XmlRpcRouterModule.cs
@@ -31,6 +31,7 @@ using System.Reflection;
 using log4net;
 using Nini.Config;
 using OpenMetaverse;
+using Mono.Addins;
 
 using OpenSim.Framework;
 using OpenSim.Region.Framework.Interfaces;
@@ -39,27 +40,46 @@ using OpenSim.Region.Framework.Scenes;
 
 namespace OpenSim.Region.OptionalModules.Scripting.XmlRpcRouterModule
 {
-    public class XmlRpcRouter : IRegionModule, IXmlRpcRouter
+    [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "XmlRpcRouter")]
+    public class XmlRpcRouter : INonSharedRegionModule, IXmlRpcRouter
     {
         //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-        
-        public void Initialise(Scene scene, IConfigSource config)
+
+        private bool m_Enabled;
+
+        #region INonSharedRegionModule
+
+        public void Initialise(IConfigSource config)
         {
-            IConfig startupConfig = config.Configs["Startup"];
+            IConfig startupConfig = config.Configs["XMLRPC"];
             if (startupConfig == null)
                 return;
 
             if (startupConfig.GetString("XmlRpcRouterModule",
                     "XmlRpcRouterModule") == "XmlRpcRouterModule")
-            {
-                scene.RegisterModuleInterface<IXmlRpcRouter>(this);
-            }
+                m_Enabled = true;
+        }
+
+        public void AddRegion(Scene scene)
+        {
+            if (!m_Enabled)
+                return;
+
+            scene.RegisterModuleInterface<IXmlRpcRouter>(this);
         }
 
-        public void PostInitialise()
+        public void RegionLoaded(Scene scene)
         {
         }
 
+        public void RemoveRegion(Scene scene)
+        {
+            if (!m_Enabled)
+                return;
+
+            scene.UnregisterModuleInterface<IXmlRpcRouter>(this);
+        }
+
         public void Close()
         {
         }
@@ -69,11 +89,13 @@ namespace OpenSim.Region.OptionalModules.Scripting.XmlRpcRouterModule
             get { return "XmlRpcRouterModule"; }
         }
 
-        public bool IsSharedModule
+        public Type ReplaceableInterface
         {
-            get { return false; }
+            get { return null; }
         }
 
+        #endregion
+
         public void RegisterNewReceiver(IScriptModule scriptEngine, UUID channel, UUID objectID, UUID itemID, string uri)
         {
             scriptEngine.PostScriptEvent(itemID, "xmlrpc_uri", new Object[] {uri});
-- 
cgit v1.1