From 531f998ed2151f31dce4fe5a0ef1c2f03389b712 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 28 Dec 2009 07:16:43 -0800 Subject: [PATCH] * Deleted HGPresenceBroker, since it won't be needed * Linked the remote presence module to the corresponding remote connector --- .../Presence/HGPresenceBroker.cs | 256 ------------------ .../RemotePresenceServiceConnector.cs | 3 +- 2 files changed, 2 insertions(+), 257 deletions(-) delete mode 100644 OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/HGPresenceBroker.cs diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/HGPresenceBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/HGPresenceBroker.cs deleted file mode 100644 index 0d913bcdd5..0000000000 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/HGPresenceBroker.cs +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -using System; -using System.Collections.Generic; -using System.Reflection; - -using OpenSim.Region.Framework.Interfaces; -using OpenSim.Region.Framework.Scenes; -using OpenSim.Server.Base; -using OpenSim.Services.Interfaces; -using PresenceInfo = OpenSim.Services.Interfaces.PresenceInfo; - -using OpenMetaverse; -using log4net; -using Nini.Config; - -namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence -{ - public class HGPresenceBroker : ISharedRegionModule, IPresenceService - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - #region ISharedRegionModule - - private bool m_Enabled = false; - - private PresenceDetector m_PresenceDetector; - private IPresenceService m_GridService; - private IPresenceService m_HGService; - - public Type ReplaceableInterface - { - get { return null; } - } - - public string Name - { - get { return "HGPresenceBroker"; } - } - - public void Initialise(IConfigSource source) - { - IConfig moduleConfig = source.Configs["Modules"]; - if (moduleConfig != null) - { - string name = moduleConfig.GetString("PresenceServices", ""); - if (name == Name) - { - //m_RemoteConnector = new InventoryServicesConnector(source); - - m_Enabled = true; - - m_PresenceDetector = new PresenceDetector(this); - - - IConfig pConfig = source.Configs["PresenceService"]; - if (pConfig == null) - { - m_log.Error("[HG PRESENCE CONNECTOR]: PresenceService missing from OpenSim.ini"); - return; - } - - string localDll = pConfig.GetString("LocalGridPresenceService", - String.Empty); - string HGDll = pConfig.GetString("HypergridPresenceService", - String.Empty); - - if (localDll == String.Empty) - { - m_log.Error("[HG PRESENCE CONNECTOR]: No LocalGridPresenceService named in section PresenceService"); - //return; - throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's"); - } - - if (HGDll == String.Empty) - { - m_log.Error("[HG PRESENCE CONNECTOR]: No HypergridPresenceService named in section PresenceService"); - //return; - throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's"); - } - - Object[] args = new Object[] { source }; - m_GridService = ServerUtils.LoadPlugin(localDll, args); - - m_HGService = ServerUtils.LoadPlugin(HGDll, args); - // no. This will be: - // m_HGService = new HGPresenceServiceConnector(); - - if (m_GridService == null) - { - m_log.Error("[HG PRESENCE CONNECTOR]: Can't load local presence service"); - return; - } - if (m_HGService == null) - { - m_log.Error("[HG PRESENCE CONNECTOR]: Can't load hypergrid presence service"); - return; - } - - m_log.Info("[HG PRESENCE CONNECTOR]: Hypergrid presence enabled"); - } - } - - } - - public void PostInitialise() - { - } - - public void Close() - { - } - - public void AddRegion(Scene scene) - { - if (!m_Enabled) - return; - - scene.RegisterModuleInterface(this); - m_PresenceDetector.AddRegion(scene); - - m_log.InfoFormat("[HG PRESENCE CONNECTOR]: Enabled hypergrid presence for region {0}", scene.RegionInfo.RegionName); - - } - - public void RemoveRegion(Scene scene) - { - if (!m_Enabled) - return; - - m_PresenceDetector.RemoveRegion(scene); - } - - public void RegionLoaded(Scene scene) - { - if (!m_Enabled) - return; - - } - - #endregion - - #region IPresenceService - - public bool LoginAgent(UUID principalID, UUID sessionID, UUID secureSessionID) - { - m_log.Warn("[HG PRESENCE CONNECTOR]: LoginAgent connector not implemented at the simulators"); - return false; - } - - public bool LogoutAgent(UUID sessionID) - { - return m_GridService.LogoutAgent(sessionID); - } - - - public bool LogoutRegionAgents(UUID regionID) - { - return m_GridService.LogoutRegionAgents(regionID); - } - - public bool ReportAgent(UUID sessionID, UUID regionID, Vector3 position, Vector3 lookAt) - { - return m_GridService.ReportAgent(sessionID, regionID, position, lookAt); - } - - public PresenceInfo GetAgent(UUID sessionID) - { - return m_GridService.GetAgent(sessionID); - } - - public PresenceInfo[] GetAgents(string[] principalIDs) - { - Dictionary> triage = new Dictionary>(); - List presences = new List(); - - foreach (string s in principalIDs) - { - string url = string.Empty; - string uuid = UUID.Zero.ToString(); - StringToUrlAndUUID(s, out url, out uuid); - if (triage.ContainsKey(url)) - triage[url].Add(uuid); - else - { - List list = new List(); - list.Add(uuid); - triage.Add(url, list); - } - } - - foreach (KeyValuePair> kvp in triage) - { - if (kvp.Key == "local") - { - PresenceInfo[] pinfos = m_GridService.GetAgents(kvp.Value.ToArray()); - presences.AddRange(pinfos); - } - else - { - PresenceInfo[] pinfos = m_HGService.GetAgents(/*kvp.Key,*/ kvp.Value.ToArray()); - presences.AddRange(pinfos); - } - } - - return presences.ToArray(); - } - - #endregion - - private void StringToUrlAndUUID(string id, out string url, out string uuid) - { - url = String.Empty; - uuid = String.Empty; - - Uri uri; - - if (Uri.TryCreate(id, UriKind.Absolute, out uri) && - uri.Scheme == Uri.UriSchemeHttp) - { - url = "http://" + uri.Authority; - uuid = uri.LocalPath.Trim(new char[] { '/' }); - } - else - { - url = "local"; - uuid = id; - } - } - - } -} diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs index eacf467e4e..d75ed51cf3 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs @@ -32,6 +32,7 @@ using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using OpenSim.Server.Base; using OpenSim.Services.Interfaces; +using OpenSim.Services.Connectors; using PresenceInfo = OpenSim.Services.Interfaces.PresenceInfo; using OpenMetaverse; @@ -69,7 +70,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence string name = moduleConfig.GetString("PresenceServices", ""); if (name == Name) { - //m_RemoteConnector = new PresenceServicesConnector(source); + m_RemoteConnector = new PresenceServicesConnector(source); m_Enabled = true;