From 93f07a9fcef3c4b2df15d0f3bac3ea699fd5607e Mon Sep 17 00:00:00 2001 From: MW Date: Sun, 10 Jun 2007 12:01:09 +0000 Subject: --- .../GridServer/GridCommsManagerBase.cs | 17 +--- .../GridServer/GridCommsManagerLocal.cs | 79 +-------------- .../GridServer/GridCommsManagerOGS.cs | 12 +-- .../RegionServerCommsLocal.cs | 107 +++++++++++++++++++++ .../RegionServerCommsManager.cs | 15 +++ .../RegionServerCommsOGS.cs | 32 ++++++ 6 files changed, 158 insertions(+), 104 deletions(-) (limited to 'Common/OpenGrid.Framework.Communications') diff --git a/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerBase.cs b/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerBase.cs index 11b5ea7..eab7bac 100644 --- a/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerBase.cs +++ b/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerBase.cs @@ -16,7 +16,7 @@ namespace OpenGrid.Framework.Communications.GridServer /// /// /// - public virtual RegionCommsHostBase RegisterRegion(RegionInfo regionInfo) + internal virtual RegionCommsHostBase RegisterRegion(RegionInfo regionInfo) { return null; } @@ -30,21 +30,6 @@ namespace OpenGrid.Framework.Communications.GridServer { return null; } - - /// - /// - /// - /// - public virtual bool InformNeighbourOfChildAgent(ulong regionHandle, AgentCircuitData agentData) //should change from agentCircuitData - { - return false; - } - - public virtual bool AddNewSession(ulong regionHandle, Login loginData) - { - return false; - } - } } diff --git a/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerLocal.cs b/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerLocal.cs index 774585a..9e7f1e5 100644 --- a/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerLocal.cs +++ b/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerLocal.cs @@ -11,94 +11,19 @@ namespace OpenGrid.Framework.Communications.GridServer { public class GridCommsManagerLocal : GridCommsManagerBase { - protected Dictionary regions = new Dictionary(); - protected Dictionary regionHosts = new Dictionary(); - public GridCommsManagerLocal() { } - public override RegionCommsHostBase RegisterRegion(RegionInfo regionInfo) + internal override RegionCommsHostBase RegisterRegion(RegionInfo regionInfo) { - //Console.WriteLine("CommsManager - Region " + regionInfo.RegionHandle + " , " + regionInfo.RegionLocX + " , "+ regionInfo.RegionLocY +" is registering"); - if (!this.regions.ContainsKey((uint)regionInfo.RegionHandle)) - { - //Console.WriteLine("CommsManager - Adding Region " + regionInfo.RegionHandle ); - this.regions.Add(regionInfo.RegionHandle, regionInfo); - RegionCommsHostBase regionHost = new RegionCommsHostBase(); - this.regionHosts.Add(regionInfo.RegionHandle, regionHost); - return regionHost; - } - - //already in our list of regions so for now lets return null return null; } - public override List RequestNeighbours(RegionInfo regionInfo) { - // Console.WriteLine("Finding Neighbours to " + regionInfo.RegionHandle); - List neighbours = new List(); - - foreach (RegionInfo reg in this.regions.Values) - { - // Console.WriteLine("CommsManager- RequestNeighbours() checking region " + reg.RegionLocX + " , "+ reg.RegionLocY); - if (reg.RegionHandle != regionInfo.RegionHandle) - { - //Console.WriteLine("CommsManager- RequestNeighbours() - found a different region in list, checking location"); - if ((reg.RegionLocX > (regionInfo.RegionLocX - 2)) && (reg.RegionLocX < (regionInfo.RegionLocX + 2))) - { - if ((reg.RegionLocY > (regionInfo.RegionLocY - 2)) && (reg.RegionLocY < (regionInfo.RegionLocY + 2))) - { - neighbours.Add(reg); - } - } - } - } - return neighbours; - } - - public override bool InformNeighbourOfChildAgent(ulong regionHandle, AgentCircuitData agentData) //should change from agentCircuitData - { - //Console.WriteLine("CommsManager- Trying to Inform a region to expect child agent"); - if (this.regionHosts.ContainsKey(regionHandle)) - { - // Console.WriteLine("CommsManager- Informing a region to expect child agent"); - this.regionHosts[regionHandle].TriggerExpectUser(regionHandle, agentData); - return true; - } - return false; - } - - /// - /// Is a Sandbox mode method, used by the local Login server to inform a region of a connection user/session - /// - /// - /// - /// - public override bool AddNewSession(ulong regionHandle, Login loginData) - { - //Console.WriteLine(" comms manager been told to expect new user"); - AgentCircuitData agent = new AgentCircuitData(); - agent.AgentID = loginData.Agent; - agent.firstname = loginData.First; - agent.lastname = loginData.Last; - agent.SessionID = loginData.Session; - agent.SecureSessionID = loginData.SecureSession; - agent.circuitcode = loginData.CircuitCode; - agent.BaseFolder = loginData.BaseFolder; - agent.InventoryFolder = loginData.InventoryFolder; - agent.startpos = new LLVector3(128, 128, 70); - - if (this.regionHosts.ContainsKey(regionHandle)) - { - this.regionHosts[regionHandle].TriggerExpectUser(regionHandle, agent); - return true; - } - - // region not found - return false; + return null; } } } diff --git a/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerOGS.cs b/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerOGS.cs index 415c1d8..1788873 100644 --- a/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerOGS.cs +++ b/Common/OpenGrid.Framework.Communications/GridServer/GridCommsManagerOGS.cs @@ -13,7 +13,7 @@ namespace OpenGrid.Framework.Communications.GridServer { } - public override RegionCommsHostBase RegisterRegion(RegionInfo regionInfo) + internal override RegionCommsHostBase RegisterRegion(RegionInfo regionInfo) { return null; } @@ -22,15 +22,5 @@ namespace OpenGrid.Framework.Communications.GridServer { return null; } - - public override bool InformNeighbourOfChildAgent(ulong regionHandle, AgentCircuitData agentData) //should change from agentCircuitData - { - return false; - } - - public override bool AddNewSession(ulong regionHandle, Login loginData) - { - return false; - } } } diff --git a/Common/OpenGrid.Framework.Communications/RegionServerCommsLocal.cs b/Common/OpenGrid.Framework.Communications/RegionServerCommsLocal.cs index 0743cbf..fcccb49 100644 --- a/Common/OpenGrid.Framework.Communications/RegionServerCommsLocal.cs +++ b/Common/OpenGrid.Framework.Communications/RegionServerCommsLocal.cs @@ -11,10 +11,117 @@ namespace OpenGrid.Framework.Communications { public class RegionServerCommsLocal : RegionServerCommsManager { + protected Dictionary regions = new Dictionary(); + protected Dictionary regionHosts = new Dictionary(); + public RegionServerCommsLocal() { userServer = new UserServer.UserCommsManagerLocal(); //Local User Server gridServer = new GridServer.GridCommsManagerLocal(); //Locl Grid Server } + + /// + /// Main Register a region method with the CommsManager. + /// Should do anything that is needed and also call the RegisterRegion method in the gridserver class + /// to inform the grid server (in grid mode). + /// + /// + /// + public override RegionCommsHostBase RegisterRegion(RegionInfo regionInfo) + { + //Console.WriteLine("CommsManager - Region " + regionInfo.RegionHandle + " , " + regionInfo.RegionLocX + " , "+ regionInfo.RegionLocY +" is registering"); + if (!this.regions.ContainsKey((uint)regionInfo.RegionHandle)) + { + //Console.WriteLine("CommsManager - Adding Region " + regionInfo.RegionHandle ); + this.regions.Add(regionInfo.RegionHandle, regionInfo); + RegionCommsHostBase regionHost = new RegionCommsHostBase(); + this.regionHosts.Add(regionInfo.RegionHandle, regionHost); + + return regionHost; + } + + //already in our list of regions so for now lets return null + return null; + } + + /// + /// In the current class structure this shouldn't be here as it should only be in the gridserver class + /// but having it there in sandbox mode makes things very difficult, so for now until something is sorted out + /// it will have to be here as well + /// + /// + /// + public override List RequestNeighbours(RegionInfo regionInfo) + { + // Console.WriteLine("Finding Neighbours to " + regionInfo.RegionHandle); + List neighbours = new List(); + + foreach (RegionInfo reg in this.regions.Values) + { + // Console.WriteLine("CommsManager- RequestNeighbours() checking region " + reg.RegionLocX + " , "+ reg.RegionLocY); + if (reg.RegionHandle != regionInfo.RegionHandle) + { + //Console.WriteLine("CommsManager- RequestNeighbours() - found a different region in list, checking location"); + if ((reg.RegionLocX > (regionInfo.RegionLocX - 2)) && (reg.RegionLocX < (regionInfo.RegionLocX + 2))) + { + if ((reg.RegionLocY > (regionInfo.RegionLocY - 2)) && (reg.RegionLocY < (regionInfo.RegionLocY + 2))) + { + neighbours.Add(reg); + } + } + } + } + return neighbours; + } + + /// + /// informs a neighbouring sim to expect a child agent + /// I guess if we are going to stick with the current class structure then we need a intersim class + /// but think we need to really rethink the class structure as currently it makes things very messy for sandbox mode + /// + /// + /// + /// + public override bool InformNeighbourOfChildAgent(ulong regionHandle, AgentCircuitData agentData) //should change from agentCircuitData + { + //Console.WriteLine("CommsManager- Trying to Inform a region to expect child agent"); + if (this.regionHosts.ContainsKey(regionHandle)) + { + // Console.WriteLine("CommsManager- Informing a region to expect child agent"); + this.regionHosts[regionHandle].TriggerExpectUser(regionHandle, agentData); + return true; + } + return false; + } + + /// + /// Is a Sandbox mode method, used by the local Login server to inform a region of a connection user/session + /// + /// + /// + /// + public bool AddNewSession(ulong regionHandle, Login loginData) + { + //Console.WriteLine(" comms manager been told to expect new user"); + AgentCircuitData agent = new AgentCircuitData(); + agent.AgentID = loginData.Agent; + agent.firstname = loginData.First; + agent.lastname = loginData.Last; + agent.SessionID = loginData.Session; + agent.SecureSessionID = loginData.SecureSession; + agent.circuitcode = loginData.CircuitCode; + agent.BaseFolder = loginData.BaseFolder; + agent.InventoryFolder = loginData.InventoryFolder; + agent.startpos = new LLVector3(128, 128, 70); + + if (this.regionHosts.ContainsKey(regionHandle)) + { + this.regionHosts[regionHandle].TriggerExpectUser(regionHandle, agent); + return true; + } + + // region not found + return false; + } } } diff --git a/Common/OpenGrid.Framework.Communications/RegionServerCommsManager.cs b/Common/OpenGrid.Framework.Communications/RegionServerCommsManager.cs index 38bce42..b3a4a8f 100644 --- a/Common/OpenGrid.Framework.Communications/RegionServerCommsManager.cs +++ b/Common/OpenGrid.Framework.Communications/RegionServerCommsManager.cs @@ -19,5 +19,20 @@ namespace OpenGrid.Framework.Communications { } + + public virtual RegionCommsHostBase RegisterRegion(RegionInfo regionInfo) + { + return null; + } + + public virtual List RequestNeighbours(RegionInfo regionInfo) + { + return null; + } + + public virtual bool InformNeighbourOfChildAgent(ulong regionHandle, AgentCircuitData agentData) //should change from agentCircuitData + { + return false; + } } } diff --git a/Common/OpenGrid.Framework.Communications/RegionServerCommsOGS.cs b/Common/OpenGrid.Framework.Communications/RegionServerCommsOGS.cs index b0db473..b746f92 100644 --- a/Common/OpenGrid.Framework.Communications/RegionServerCommsOGS.cs +++ b/Common/OpenGrid.Framework.Communications/RegionServerCommsOGS.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.Text; +using OpenSim.Framework; +using OpenSim.Framework.Types; namespace OpenGrid.Framework.Communications { @@ -11,5 +13,35 @@ namespace OpenGrid.Framework.Communications userServer = new UserServer.UserCommsManagerOGS(); //Remote User Server gridServer = new GridServer.GridCommsManagerOGS(); //Remote Grid Server } + + public override RegionCommsHostBase RegisterRegion(RegionInfo regionInfo) + { + return gridServer.RegisterRegion(regionInfo); + } + + /// + /// In the current class structure this shouldn't be here as it should only be in the gridserver class + /// but having it there in sandbox mode makes things very difficult, so for now until something is sorted out + /// it will have to be here as well + /// + /// + /// + public override List RequestNeighbours(RegionInfo regionInfo) + { + return gridServer.RequestNeighbours(regionInfo); + } + + /// + /// informs a neighbouring sim to expect a child agent + /// I guess if we are going to stick with the current class structure then we need a intersim class + /// but think we need to really rethink the class structure as currently it makes things very messy for sandbox mode + /// + /// + /// + /// + public override bool InformNeighbourOfChildAgent(ulong regionHandle, AgentCircuitData agentData) //should change from agentCircuitData + { + return false; + } } } -- cgit v1.1