From 45ef3e9987def8385174c332fc56c90b0ba3fef8 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 15 Mar 2010 20:32:36 -0700 Subject: Get the local inner simulation service object to the handler so that there is no possibility of cascading requests when failures happen. --- .../ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs | 5 +++++ .../ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs | 5 +++++ OpenSim/Server/Handlers/Simulation/SimulationServiceInConnector.cs | 1 + OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | 5 +++++ OpenSim/Services/Interfaces/ISimulationService.cs | 1 + 5 files changed, 17 insertions(+) diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs index 783d606..e32dbb3 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs @@ -166,6 +166,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation return m_sceneList[0]; } + public ISimulationService GetInnerService() + { + return this; + } + /** * Agent-related communications */ diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs index 4d82a05..9e8454f 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs @@ -156,6 +156,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation return m_localBackend.GetScene(handle); } + public ISimulationService GetInnerService() + { + return m_localBackend; + } + /** * Agent-related communications */ diff --git a/OpenSim/Server/Handlers/Simulation/SimulationServiceInConnector.cs b/OpenSim/Server/Handlers/Simulation/SimulationServiceInConnector.cs index 55a575c..50d6fb2 100644 --- a/OpenSim/Server/Handlers/Simulation/SimulationServiceInConnector.cs +++ b/OpenSim/Server/Handlers/Simulation/SimulationServiceInConnector.cs @@ -55,6 +55,7 @@ namespace OpenSim.Server.Handlers.Simulation //Object[] args = new Object[] { config }; m_LocalSimulationService = scene.RequestModuleInterface(); + m_LocalSimulationService = m_LocalSimulationService.GetInnerService(); //ServerUtils.LoadPlugin(simService, args); //System.Console.WriteLine("XXXXXXXXXXXXXXXXXXX m_AssetSetvice == null? " + ((m_AssetService == null) ? "yes" : "no")); diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs index d3be1a8..ff0dd7e 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs @@ -63,6 +63,11 @@ namespace OpenSim.Services.Connectors.Simulation return null; } + public ISimulationService GetInnerService() + { + return null; + } + #region Agents protected virtual string AgentPath() diff --git a/OpenSim/Services/Interfaces/ISimulationService.cs b/OpenSim/Services/Interfaces/ISimulationService.cs index ec24d90..67d7cbe 100644 --- a/OpenSim/Services/Interfaces/ISimulationService.cs +++ b/OpenSim/Services/Interfaces/ISimulationService.cs @@ -36,6 +36,7 @@ namespace OpenSim.Services.Interfaces public interface ISimulationService { IScene GetScene(ulong regionHandle); + ISimulationService GetInnerService(); #region Agents -- cgit v1.1