From a8901a40f4526720f68049706cabd34cf9717172 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Thu, 31 Dec 2009 09:25:16 -0800
Subject: Simulation handlers (agents & objects) completed.
---
OpenSim/Server/Handlers/Simulation/Utils.cs | 103 ++++++++++++++++++++++++++++
1 file changed, 103 insertions(+)
create mode 100644 OpenSim/Server/Handlers/Simulation/Utils.cs
(limited to 'OpenSim/Server/Handlers/Simulation/Utils.cs')
diff --git a/OpenSim/Server/Handlers/Simulation/Utils.cs b/OpenSim/Server/Handlers/Simulation/Utils.cs
new file mode 100644
index 0000000..1f2f851
--- /dev/null
+++ b/OpenSim/Server/Handlers/Simulation/Utils.cs
@@ -0,0 +1,103 @@
+/*
+ * 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 OpenMetaverse;
+using OpenMetaverse.StructuredData;
+
+using log4net;
+
+namespace OpenSim.Server.Handlers.Simulation
+{
+ public class Utils
+ {
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+
+ ///
+ /// Extract the param from an uri.
+ ///
+ /// Something like this: /agent/uuid/ or /agent/uuid/handle/release
+ /// uuid on uuid field
+ /// optional action
+ public static bool GetParams(string uri, out UUID uuid, out ulong regionHandle, out string action)
+ {
+ uuid = UUID.Zero;
+ action = "";
+ regionHandle = 0;
+
+ uri = uri.Trim(new char[] { '/' });
+ string[] parts = uri.Split('/');
+ if (parts.Length <= 1)
+ {
+ return false;
+ }
+ else
+ {
+ if (!UUID.TryParse(parts[1], out uuid))
+ return false;
+
+ if (parts.Length >= 3)
+ UInt64.TryParse(parts[2], out regionHandle);
+ if (parts.Length >= 4)
+ action = parts[3];
+
+ return true;
+ }
+ }
+
+ public static OSDMap GetOSDMap(string data)
+ {
+ OSDMap args = null;
+ try
+ {
+ OSD buffer;
+ // We should pay attention to the content-type, but let's assume we know it's Json
+ buffer = OSDParser.DeserializeJson(data);
+ if (buffer.Type == OSDType.Map)
+ {
+ args = (OSDMap)buffer;
+ return args;
+ }
+ else
+ {
+ // uh?
+ m_log.Debug(("[REST COMMS]: Got OSD of unexpected type " + buffer.Type.ToString()));
+ return null;
+ }
+ }
+ catch (Exception ex)
+ {
+ m_log.Debug("[REST COMMS]: exception on parse of REST message " + ex.Message);
+ return null;
+ }
+ }
+
+ }
+}
--
cgit v1.1
From c268e342d19b6cc5969b1c1d94f20a3f4eb844ef Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Sun, 3 Jan 2010 09:35:12 -0800
Subject: * Changed ISimulation interface to take a GridRegion as input arg
instead of a regionHandle. * Added the RemoteSimulationConnectorModule, which
is the replacement for RESTComms. Scenes is not using this yet, only
(standalone) Login uses these region modules for now. * Completed
SimulationServiceConnector and corresponding handlers.
---
OpenSim/Server/Handlers/Simulation/Utils.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Server/Handlers/Simulation/Utils.cs')
diff --git a/OpenSim/Server/Handlers/Simulation/Utils.cs b/OpenSim/Server/Handlers/Simulation/Utils.cs
index 1f2f851..ed379da 100644
--- a/OpenSim/Server/Handlers/Simulation/Utils.cs
+++ b/OpenSim/Server/Handlers/Simulation/Utils.cs
@@ -46,11 +46,11 @@ namespace OpenSim.Server.Handlers.Simulation
/// Something like this: /agent/uuid/ or /agent/uuid/handle/release
/// uuid on uuid field
/// optional action
- public static bool GetParams(string uri, out UUID uuid, out ulong regionHandle, out string action)
+ public static bool GetParams(string uri, out UUID uuid, out UUID regionID, out string action)
{
uuid = UUID.Zero;
+ regionID = UUID.Zero;
action = "";
- regionHandle = 0;
uri = uri.Trim(new char[] { '/' });
string[] parts = uri.Split('/');
@@ -64,7 +64,7 @@ namespace OpenSim.Server.Handlers.Simulation
return false;
if (parts.Length >= 3)
- UInt64.TryParse(parts[2], out regionHandle);
+ UUID.TryParse(parts[2], out regionID);
if (parts.Length >= 4)
action = parts[3];
--
cgit v1.1