From 5757afe7665543e8b3ed4a322a7d6e095dafcdb3 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 26 Sep 2009 07:48:21 -0700 Subject: First pass at the heart surgery for grid services. Compiles and runs minimally. A few bugs to catch now. --- OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs | 13 +++++++++---- .../Avatar/InstantMessage/MessageTransferModule.cs | 8 ++++++-- .../CoreModules/Avatar/InstantMessage/PresenceModule.cs | 6 +++++- 3 files changed, 20 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/CoreModules/Avatar') diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs index 49b2b5c..dd9b318 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs @@ -40,6 +40,7 @@ using OpenSim.Framework.Communications.Cache; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using OpenSim.Services.Interfaces; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.CoreModules.Avatar.Friends { @@ -108,7 +109,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends private Dictionary m_scenes = new Dictionary(); private IMessageTransferModule m_TransferModule = null; - private IGridServices m_gridServices = null; + private IGridService m_gridServices = null; #region IRegionModule Members @@ -142,7 +143,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends if (m_scenes.Count > 0) { m_TransferModule = m_initialScene.RequestModuleInterface(); - m_gridServices = m_initialScene.CommsManager.GridService; + m_gridServices = m_initialScene.GridService; } if (m_TransferModule == null) m_log.Error("[FRIENDS]: Unable to find a message transfer module, friendship offers will not work"); @@ -171,7 +172,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends List tpdAway = new List(); // destRegionHandle is a region on another server - RegionInfo info = m_gridServices.RequestNeighbourInfo(destRegionHandle); + uint x = 0, y = 0; + Utils.LongToUInts(destRegionHandle, out x, out y); + GridRegion info = m_gridServices.GetRegionByPosition(m_initialScene.RegionInfo.ScopeID, (int)x, (int)y); if (info != null) { string httpServer = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/presence_update_bulk"; @@ -223,7 +226,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends public bool TriggerTerminateFriend(ulong destRegionHandle, UUID agentID, UUID exFriendID) { // destRegionHandle is a region on another server - RegionInfo info = m_gridServices.RequestNeighbourInfo(destRegionHandle); + uint x = 0, y = 0; + Utils.LongToUInts(destRegionHandle, out x, out y); + GridRegion info = m_gridServices.GetRegionByPosition(m_initialScene.RegionInfo.ScopeID, (int)x, (int)y); if (info == null) { m_log.WarnFormat("[OGS1 GRID SERVICES]: Couldn't find region {0}", destRegionHandle); diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs index 4495303..e5159b3 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs @@ -36,6 +36,7 @@ using OpenMetaverse; using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.CoreModules.Avatar.InstantMessage { @@ -497,7 +498,10 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage { if (upd.AgentOnline) { - RegionInfo reginfo = m_Scenes[0].SceneGridService.RequestNeighbouringRegionInfo(upd.Handle); + uint x = 0, y = 0; + Utils.LongToUInts(upd.Handle, out x, out y); + GridRegion reginfo = m_Scenes[0].GridService.GetRegionByPosition(m_Scenes[0].RegionInfo.ScopeID, + (int)x, (int)y); if (reginfo != null) { Hashtable msgdata = ConvertGridInstantMessageToXMLRPC(im); @@ -559,7 +563,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage /// RegionInfo we pull the data out of to send the request to /// The Instant Message data Hashtable /// Bool if the message was successfully delivered at the other side. - protected virtual bool doIMSending(RegionInfo reginfo, Hashtable xmlrpcdata) + protected virtual bool doIMSending(GridRegion reginfo, Hashtable xmlrpcdata) { ArrayList SendParams = new ArrayList(); diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs index ebd9a72..6daab44 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs @@ -35,6 +35,7 @@ using OpenMetaverse; using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.CoreModules.Avatar.InstantMessage { @@ -171,7 +172,10 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage { // TODO this is the old messaging-server protocol; only the regionHandle is available. // Fetch region-info to get the id - RegionInfo regionInfo = m_initialScene.RequestNeighbouringRegionInfo(info.regionHandle); + uint x = 0, y = 0; + Utils.LongToUInts(info.regionHandle, out x, out y); + GridRegion regionInfo = m_initialScene.GridService.GetRegionByPosition(m_initialScene.RegionInfo.ScopeID, + (int)x, (int)y); regionID = regionInfo.RegionID; } result[indices[i]] = new PresenceInfo(uuids[i], regionID); -- cgit v1.1