svn:eol-style property set.

0.6.5-rc1
diva 2009-03-27 16:13:25 +00:00
parent 6ddf932c7e
commit 06ad2244f0
1 changed files with 208 additions and 208 deletions

View File

@ -1,208 +1,208 @@
/** /**
* Copyright (c) 2008, Contributors. All rights reserved. * Copyright (c) 2008, Contributors. All rights reserved.
* See CONTRIBUTORS.TXT for a full list of copyright holders. * See CONTRIBUTORS.TXT for a full list of copyright holders.
* *
* Redistribution and use in source and binary forms, with or without modification, * Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met: * are permitted provided that the following conditions are met:
* *
* * Redistributions of source code must retain the above copyright notice, * * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer. * this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice, * * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation * this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution. * and/or other materials provided with the distribution.
* * Neither the name of the Organizations nor the names of Individual * * Neither the name of the Organizations nor the names of Individual
* Contributors may be used to endorse or promote products derived from * Contributors may be used to endorse or promote products derived from
* this software without specific prior written permission. * this software without specific prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * 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 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * 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 * 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 * 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 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE. * OF THE POSSIBILITY OF SUCH DAMAGE.
* *
*/ */
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Data; using OpenSim.Data;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Servers.Interfaces; using OpenSim.Framework.Servers.Interfaces;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using Nwc.XmlRpc; using Nwc.XmlRpc;
namespace OpenSim.Region.CoreModules.Framework.Services namespace OpenSim.Region.CoreModules.Framework.Services
{ {
public class RegionMapService : IRegionModule public class RegionMapService : IRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static bool initialized = false; private static bool initialized = false;
private static bool enabled = false; private static bool enabled = false;
Scene m_scene; Scene m_scene;
//AssetService m_assetService; //AssetService m_assetService;
#region IRegionModule interface #region IRegionModule interface
public void Initialise(Scene scene, IConfigSource config) public void Initialise(Scene scene, IConfigSource config)
{ {
if (!initialized) if (!initialized)
{ {
initialized = true; initialized = true;
m_scene = scene; m_scene = scene;
// This module is only on for hypergrid mode // This module is only on for hypergrid mode
enabled = config.Configs["Startup"].GetBoolean("hypergrid", false); enabled = config.Configs["Startup"].GetBoolean("hypergrid", false);
} }
} }
public void PostInitialise() public void PostInitialise()
{ {
if (enabled) if (enabled)
{ {
m_log.Info("[RegionMapService]: Starting..."); m_log.Info("[RegionMapService]: Starting...");
//m_assetService = new AssetService(m_scene); //m_assetService = new AssetService(m_scene);
new GridService(m_scene); new GridService(m_scene);
} }
} }
public void Close() public void Close()
{ {
} }
public string Name public string Name
{ {
get { return "RegionMapService"; } get { return "RegionMapService"; }
} }
public bool IsSharedModule public bool IsSharedModule
{ {
get { return true; } get { return true; }
} }
#endregion #endregion
} }
public class GridService public class GridService
{ {
// private IUserService m_userService; // private IUserService m_userService;
private IGridServices m_gridService; private IGridServices m_gridService;
private bool m_doLookup = false; private bool m_doLookup = false;
public bool DoLookup public bool DoLookup
{ {
get { return m_doLookup; } get { return m_doLookup; }
set { m_doLookup = value; } set { m_doLookup = value; }
} }
private static readonly ILog m_log private static readonly ILog m_log
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public GridService(Scene m_scene) public GridService(Scene m_scene)
{ {
AddHandlers(m_scene); AddHandlers(m_scene);
// m_userService = m_scene.CommsManager.UserService; // m_userService = m_scene.CommsManager.UserService;
m_gridService = m_scene.CommsManager.GridService; m_gridService = m_scene.CommsManager.GridService;
} }
protected void AddHandlers(Scene m_scene) protected void AddHandlers(Scene m_scene)
{ {
// IAssetDataPlugin m_assetProvider // IAssetDataPlugin m_assetProvider
// = ((AssetServerBase)m_scene.CommsManager.AssetCache.AssetServer).AssetProviderPlugin; // = ((AssetServerBase)m_scene.CommsManager.AssetCache.AssetServer).AssetProviderPlugin;
IHttpServer httpServer = m_scene.CommsManager.HttpServer; IHttpServer httpServer = m_scene.CommsManager.HttpServer;
httpServer.AddXmlRPCHandler("simulator_data_request", XmlRpcSimulatorDataRequestMethod); httpServer.AddXmlRPCHandler("simulator_data_request", XmlRpcSimulatorDataRequestMethod);
//m_httpServer.AddXmlRPCHandler("map_block", XmlRpcMapBlockMethod); //m_httpServer.AddXmlRPCHandler("map_block", XmlRpcMapBlockMethod);
//m_httpServer.AddXmlRPCHandler("search_for_region_by_name", XmlRpcSearchForRegionMethod); //m_httpServer.AddXmlRPCHandler("search_for_region_by_name", XmlRpcSearchForRegionMethod);
} }
/// <summary> /// <summary>
/// Returns an XML RPC response to a simulator profile request /// Returns an XML RPC response to a simulator profile request
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
public XmlRpcResponse XmlRpcSimulatorDataRequestMethod(XmlRpcRequest request) public XmlRpcResponse XmlRpcSimulatorDataRequestMethod(XmlRpcRequest request)
{ {
Hashtable requestData = (Hashtable)request.Params[0]; Hashtable requestData = (Hashtable)request.Params[0];
Hashtable responseData = new Hashtable(); Hashtable responseData = new Hashtable();
RegionInfo simData = null; RegionInfo simData = null;
if (requestData.ContainsKey("region_UUID")) if (requestData.ContainsKey("region_UUID"))
{ {
UUID regionID = new UUID((string)requestData["region_UUID"]); UUID regionID = new UUID((string)requestData["region_UUID"]);
simData = m_gridService.RequestNeighbourInfo(regionID); //.GetRegion(regionID); simData = m_gridService.RequestNeighbourInfo(regionID); //.GetRegion(regionID);
if (simData == null) if (simData == null)
{ {
m_log.WarnFormat("[HGGridService] didn't find region for regionID {0} from {1}", m_log.WarnFormat("[HGGridService] didn't find region for regionID {0} from {1}",
regionID, request.Params.Count > 1 ? request.Params[1] : "unknwon source"); regionID, request.Params.Count > 1 ? request.Params[1] : "unknwon source");
} }
} }
else if (requestData.ContainsKey("region_handle")) else if (requestData.ContainsKey("region_handle"))
{ {
//CFK: The if/else below this makes this message redundant. //CFK: The if/else below this makes this message redundant.
//CFK: m_log.Info("requesting data for region " + (string) requestData["region_handle"]); //CFK: m_log.Info("requesting data for region " + (string) requestData["region_handle"]);
ulong regionHandle = Convert.ToUInt64((string)requestData["region_handle"]); ulong regionHandle = Convert.ToUInt64((string)requestData["region_handle"]);
simData = m_gridService.RequestNeighbourInfo(regionHandle); //m_gridDBService.GetRegion(regionHandle); simData = m_gridService.RequestNeighbourInfo(regionHandle); //m_gridDBService.GetRegion(regionHandle);
if (simData == null) if (simData == null)
{ {
m_log.WarnFormat("[HGGridService] didn't find region for regionHandle {0} from {1}", m_log.WarnFormat("[HGGridService] didn't find region for regionHandle {0} from {1}",
regionHandle, request.Params.Count > 1 ? request.Params[1] : "unknwon source"); regionHandle, request.Params.Count > 1 ? request.Params[1] : "unknwon source");
} }
} }
else if (requestData.ContainsKey("region_name_search")) else if (requestData.ContainsKey("region_name_search"))
{ {
string regionName = (string)requestData["region_name_search"]; string regionName = (string)requestData["region_name_search"];
List<RegionInfo> regInfos = m_gridService.RequestNamedRegions(regionName, 1);//m_gridDBService.GetRegion(regionName); List<RegionInfo> regInfos = m_gridService.RequestNamedRegions(regionName, 1);//m_gridDBService.GetRegion(regionName);
if (regInfos != null) if (regInfos != null)
simData = regInfos[0]; simData = regInfos[0];
if (simData == null) if (simData == null)
{ {
m_log.WarnFormat("[HGGridService] didn't find region for regionName {0} from {1}", m_log.WarnFormat("[HGGridService] didn't find region for regionName {0} from {1}",
regionName, request.Params.Count > 1 ? request.Params[1] : "unknwon source"); regionName, request.Params.Count > 1 ? request.Params[1] : "unknwon source");
} }
} }
else m_log.Warn("[HGGridService] regionlookup without regionID, regionHandle or regionHame"); else m_log.Warn("[HGGridService] regionlookup without regionID, regionHandle or regionHame");
if (simData == null) if (simData == null)
{ {
//Sim does not exist //Sim does not exist
responseData["error"] = "Sim does not exist"; responseData["error"] = "Sim does not exist";
} }
else else
{ {
m_log.Debug("[HGGridService]: found " + (string)simData.RegionName + " regionHandle = " + m_log.Debug("[HGGridService]: found " + (string)simData.RegionName + " regionHandle = " +
(string)requestData["region_handle"]); (string)requestData["region_handle"]);
responseData["sim_ip"] = simData.ExternalEndPoint.Address.ToString(); responseData["sim_ip"] = simData.ExternalEndPoint.Address.ToString();
responseData["sim_port"] = simData.ExternalEndPoint.Port.ToString(); responseData["sim_port"] = simData.ExternalEndPoint.Port.ToString();
//responseData["server_uri"] = simData.serverURI; //responseData["server_uri"] = simData.serverURI;
responseData["http_port"] = simData.HttpPort.ToString(); responseData["http_port"] = simData.HttpPort.ToString();
//responseData["remoting_port"] = simData.remotingPort.ToString(); //responseData["remoting_port"] = simData.remotingPort.ToString();
responseData["region_locx"] = simData.RegionLocX.ToString(); responseData["region_locx"] = simData.RegionLocX.ToString();
responseData["region_locy"] = simData.RegionLocY.ToString(); responseData["region_locy"] = simData.RegionLocY.ToString();
responseData["region_UUID"] = simData.RegionID.ToString(); responseData["region_UUID"] = simData.RegionID.ToString();
responseData["region_name"] = simData.RegionName; responseData["region_name"] = simData.RegionName;
responseData["region_secret"] = simData.regionSecret; responseData["region_secret"] = simData.regionSecret;
} }
XmlRpcResponse response = new XmlRpcResponse(); XmlRpcResponse response = new XmlRpcResponse();
response.Value = responseData; response.Value = responseData;
return response; return response;
} }
} }
} }