aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r--OpenSim/Framework/IRegionLoader.cs82
-rw-r--r--OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs144
-rw-r--r--OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs196
-rw-r--r--OpenSim/Framework/Servers/BaseRequestHandler.cs68
-rw-r--r--OpenSim/Framework/Servers/RestDeserialiseHandler.cs74
-rw-r--r--OpenSim/Framework/Servers/RestObjectPoster.cs96
6 files changed, 330 insertions, 330 deletions
diff --git a/OpenSim/Framework/IRegionLoader.cs b/OpenSim/Framework/IRegionLoader.cs
index 516a886..078a0f5 100644
--- a/OpenSim/Framework/IRegionLoader.cs
+++ b/OpenSim/Framework/IRegionLoader.cs
@@ -1,41 +1,41 @@
1/* 1/*
2* Copyright (c) Contributors, http://opensimulator.org/ 2* Copyright (c) Contributors, http://opensimulator.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders. 3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4* 4*
5* Redistribution and use in source and binary forms, with or without 5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met: 6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright 7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer. 8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright 9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the 10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution. 11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the 12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products 13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission. 14* derived from this software without specific prior written permission.
15* 15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY 16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY 19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26* 26*
27*/ 27*/
28 28
29using System; 29using System;
30using System.Collections.Generic; 30using System.Collections.Generic;
31using System.Text; 31using System.Text;
32using OpenSim.Framework; 32using OpenSim.Framework;
33using Nini.Config; 33using Nini.Config;
34namespace OpenSim.Framework 34namespace OpenSim.Framework
35{ 35{
36 public interface IRegionLoader 36 public interface IRegionLoader
37 { 37 {
38 void SetIniConfigSource(IniConfigSource configSource); 38 void SetIniConfigSource(IniConfigSource configSource);
39 RegionInfo[] LoadRegions(); 39 RegionInfo[] LoadRegions();
40 } 40 }
41} 41}
diff --git a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs
index 5ebcb64..7179a7f 100644
--- a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs
+++ b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs
@@ -1,72 +1,72 @@
1/* 1/*
2* Copyright (c) Contributors, http://opensimulator.org/ 2* Copyright (c) Contributors, http://opensimulator.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders. 3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4* 4*
5* Redistribution and use in source and binary forms, with or without 5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met: 6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright 7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer. 8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright 9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the 10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution. 11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the 12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products 13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission. 14* derived from this software without specific prior written permission.
15* 15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY 16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY 19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26* 26*
27*/ 27*/
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.Text; 30using System.Text;
31using Nini.Config; 31using Nini.Config;
32using OpenSim.Framework; 32using OpenSim.Framework;
33using System.IO; 33using System.IO;
34 34
35namespace OpenSim.Framework.RegionLoader.Filesystem 35namespace OpenSim.Framework.RegionLoader.Filesystem
36{ 36{
37 public class RegionLoaderFileSystem : IRegionLoader 37 public class RegionLoaderFileSystem : IRegionLoader
38 { 38 {
39 public void SetIniConfigSource(IniConfigSource configSource) 39 public void SetIniConfigSource(IniConfigSource configSource)
40 { 40 {
41 } 41 }
42 public RegionInfo[] LoadRegions() 42 public RegionInfo[] LoadRegions()
43 { 43 {
44 string regionConfigPath = Path.Combine(Util.configDir(), "Regions"); 44 string regionConfigPath = Path.Combine(Util.configDir(), "Regions");
45 45
46 if (!Directory.Exists(regionConfigPath)) 46 if (!Directory.Exists(regionConfigPath))
47 { 47 {
48 Directory.CreateDirectory(regionConfigPath); 48 Directory.CreateDirectory(regionConfigPath);
49 } 49 }
50 50
51 string[] configFiles = Directory.GetFiles(regionConfigPath, "*.xml"); 51 string[] configFiles = Directory.GetFiles(regionConfigPath, "*.xml");
52 52
53 if (configFiles.Length == 0) 53 if (configFiles.Length == 0)
54 { 54 {
55 new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "default.xml")); 55 new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "default.xml"));
56 configFiles = Directory.GetFiles(regionConfigPath, "*.xml"); 56 configFiles = Directory.GetFiles(regionConfigPath, "*.xml");
57 } 57 }
58 58
59 RegionInfo[] regionInfos = new RegionInfo[configFiles.Length]; 59 RegionInfo[] regionInfos = new RegionInfo[configFiles.Length];
60 for (int i = 0; i < configFiles.Length; i++) 60 for (int i = 0; i < configFiles.Length; i++)
61 { 61 {
62 62
63 RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), configFiles[i]); 63 RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), configFiles[i]);
64 regionInfos[i] = regionInfo; 64 regionInfos[i] = regionInfo;
65 } 65 }
66 66
67 67
68 return regionInfos; 68 return regionInfos;
69 } 69 }
70 70
71 } 71 }
72} 72}
diff --git a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs
index 6a52a43..f7835e3 100644
--- a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs
+++ b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs
@@ -1,98 +1,98 @@
1/* 1/*
2* Copyright (c) Contributors, http://opensimulator.org/ 2* Copyright (c) Contributors, http://opensimulator.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders. 3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4* 4*
5* Redistribution and use in source and binary forms, with or without 5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met: 6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright 7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer. 8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright 9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the 10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution. 11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the 12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products 13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission. 14* derived from this software without specific prior written permission.
15* 15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY 16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY 19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26* 26*
27*/ 27*/
28using System; 28using System;
29using System.Net; 29using System.Net;
30using System.IO; 30using System.IO;
31using System.Xml; 31using System.Xml;
32using System.Collections.Generic; 32using System.Collections.Generic;
33using System.Text; 33using System.Text;
34using Nini.Config; 34using Nini.Config;
35using OpenSim.Framework; 35using OpenSim.Framework;
36 36
37namespace OpenSim.Framework.RegionLoader.Web 37namespace OpenSim.Framework.RegionLoader.Web
38{ 38{
39 public class RegionLoaderWebServer : IRegionLoader 39 public class RegionLoaderWebServer : IRegionLoader
40 { 40 {
41 private IniConfigSource m_configSouce; 41 private IniConfigSource m_configSouce;
42 public void SetIniConfigSource(IniConfigSource configSource) 42 public void SetIniConfigSource(IniConfigSource configSource)
43 { 43 {
44 m_configSouce = configSource; 44 m_configSouce = configSource;
45 } 45 }
46 public RegionInfo[] LoadRegions() 46 public RegionInfo[] LoadRegions()
47 { 47 {
48 if (m_configSouce == null) 48 if (m_configSouce == null)
49 { 49 {
50 Console.MainLog.Instance.Error("Unable to load configuration source! (WebServer Region Loader)"); 50 Console.MainLog.Instance.Error("Unable to load configuration source! (WebServer Region Loader)");
51 return null; 51 return null;
52 } 52 }
53 else 53 else
54 { 54 {
55 IniConfig startupConfig = (IniConfig)m_configSouce.Configs["Startup"]; 55 IniConfig startupConfig = (IniConfig)m_configSouce.Configs["Startup"];
56 string url = startupConfig.GetString("regionload_webserver_url","").Trim(); 56 string url = startupConfig.GetString("regionload_webserver_url","").Trim();
57 if (url == "") 57 if (url == "")
58 { 58 {
59 Console.MainLog.Instance.Error("Unable to load webserver URL - URL was empty (WebServer Region Loader"); 59 Console.MainLog.Instance.Error("Unable to load webserver URL - URL was empty (WebServer Region Loader");
60 return null; 60 return null;
61 } 61 }
62 else 62 else
63 { 63 {
64 64
65 HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); 65 HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
66 webRequest.Timeout = 30000; //30 Second Timeout 66 webRequest.Timeout = 30000; //30 Second Timeout
67 Console.MainLog.Instance.Debug("Sending Download Request..."); 67 Console.MainLog.Instance.Debug("Sending Download Request...");
68 HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); 68 HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
69 Console.MainLog.Instance.Debug("Downloading Region Information From Remote Server..."); 69 Console.MainLog.Instance.Debug("Downloading Region Information From Remote Server...");
70 StreamReader reader = new StreamReader(webResponse.GetResponseStream()); 70 StreamReader reader = new StreamReader(webResponse.GetResponseStream());
71 string xmlSource = ""; 71 string xmlSource = "";
72 string tempStr = reader.ReadLine(); 72 string tempStr = reader.ReadLine();
73 while (tempStr != null) 73 while (tempStr != null)
74 { 74 {
75 xmlSource = xmlSource + tempStr; 75 xmlSource = xmlSource + tempStr;
76 tempStr = reader.ReadLine(); 76 tempStr = reader.ReadLine();
77 } 77 }
78 Console.MainLog.Instance.Debug("Done downloading region information from server. Total Bytes: " + xmlSource.Length); 78 Console.MainLog.Instance.Debug("Done downloading region information from server. Total Bytes: " + xmlSource.Length);
79 XmlDocument xmlDoc = new XmlDocument(); 79 XmlDocument xmlDoc = new XmlDocument();
80 xmlDoc.LoadXml(xmlSource); 80 xmlDoc.LoadXml(xmlSource);
81 if (xmlDoc.FirstChild.Name == "Regions") 81 if (xmlDoc.FirstChild.Name == "Regions")
82 { 82 {
83 RegionInfo[] regionInfos = new RegionInfo[xmlDoc.FirstChild.ChildNodes.Count]; 83 RegionInfo[] regionInfos = new RegionInfo[xmlDoc.FirstChild.ChildNodes.Count];
84 int i; 84 int i;
85 for (i = 0; i < xmlDoc.FirstChild.ChildNodes.Count; i++) 85 for (i = 0; i < xmlDoc.FirstChild.ChildNodes.Count; i++)
86 { 86 {
87 Console.MainLog.Instance.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml); 87 Console.MainLog.Instance.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml);
88 regionInfos[i] = new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i]); 88 regionInfos[i] = new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i]);
89 } 89 }
90 90
91 return regionInfos; 91 return regionInfos;
92 } 92 }
93 return null; 93 return null;
94 } 94 }
95 } 95 }
96 } 96 }
97 } 97 }
98} 98}
diff --git a/OpenSim/Framework/Servers/BaseRequestHandler.cs b/OpenSim/Framework/Servers/BaseRequestHandler.cs
index b357763..155a283 100644
--- a/OpenSim/Framework/Servers/BaseRequestHandler.cs
+++ b/OpenSim/Framework/Servers/BaseRequestHandler.cs
@@ -1,35 +1,35 @@
1namespace OpenSim.Framework.Servers 1namespace OpenSim.Framework.Servers
2{ 2{
3 public class BaseRequestHandler 3 public class BaseRequestHandler
4 { 4 {
5 public virtual string ContentType 5 public virtual string ContentType
6 { 6 {
7 get { return "application/xml"; } 7 get { return "application/xml"; }
8 } 8 }
9 9
10 private readonly string m_httpMethod; 10 private readonly string m_httpMethod;
11 11
12 public virtual string HttpMethod 12 public virtual string HttpMethod
13 { 13 {
14 get { return m_httpMethod; } 14 get { return m_httpMethod; }
15 } 15 }
16 16
17 private readonly string m_path; 17 private readonly string m_path;
18 18
19 protected BaseRequestHandler(string httpMethod, string path) 19 protected BaseRequestHandler(string httpMethod, string path)
20 { 20 {
21 m_httpMethod = httpMethod; 21 m_httpMethod = httpMethod;
22 m_path = path; 22 m_path = path;
23 } 23 }
24 24
25 public virtual string Path 25 public virtual string Path
26 { 26 {
27 get { return m_path; } 27 get { return m_path; }
28 } 28 }
29 29
30 protected string GetParam(string path) 30 protected string GetParam(string path)
31 { 31 {
32 return path.Substring(m_path.Length); 32 return path.Substring(m_path.Length);
33 } 33 }
34 } 34 }
35} \ No newline at end of file 35} \ No newline at end of file
diff --git a/OpenSim/Framework/Servers/RestDeserialiseHandler.cs b/OpenSim/Framework/Servers/RestDeserialiseHandler.cs
index adf5c3f..a47d3d3 100644
--- a/OpenSim/Framework/Servers/RestDeserialiseHandler.cs
+++ b/OpenSim/Framework/Servers/RestDeserialiseHandler.cs
@@ -1,38 +1,38 @@
1using System.IO; 1using System.IO;
2using System.Xml; 2using System.Xml;
3using System.Xml.Serialization; 3using System.Xml.Serialization;
4 4
5namespace OpenSim.Framework.Servers 5namespace OpenSim.Framework.Servers
6{ 6{
7 public delegate TResponse RestDeserialiseMethod<TRequest, TResponse>(TRequest request); 7 public delegate TResponse RestDeserialiseMethod<TRequest, TResponse>(TRequest request);
8 8
9 public class RestDeserialisehandler<TRequest, TResponse> : BaseRequestHandler, IStreamHandler 9 public class RestDeserialisehandler<TRequest, TResponse> : BaseRequestHandler, IStreamHandler
10 where TRequest : new() 10 where TRequest : new()
11 { 11 {
12 private RestDeserialiseMethod<TRequest, TResponse> m_method; 12 private RestDeserialiseMethod<TRequest, TResponse> m_method;
13 13
14 public RestDeserialisehandler(string httpMethod, string path, RestDeserialiseMethod<TRequest, TResponse> method) 14 public RestDeserialisehandler(string httpMethod, string path, RestDeserialiseMethod<TRequest, TResponse> method)
15 : base(httpMethod, path) 15 : base(httpMethod, path)
16 { 16 {
17 m_method = method; 17 m_method = method;
18 } 18 }
19 19
20 public void Handle(string path, Stream request, Stream responseStream) 20 public void Handle(string path, Stream request, Stream responseStream)
21 { 21 {
22 TRequest deserial; 22 TRequest deserial;
23 using (XmlTextReader xmlReader = new XmlTextReader(request)) 23 using (XmlTextReader xmlReader = new XmlTextReader(request))
24 { 24 {
25 XmlSerializer deserializer = new XmlSerializer(typeof (TRequest)); 25 XmlSerializer deserializer = new XmlSerializer(typeof (TRequest));
26 deserial = (TRequest) deserializer.Deserialize(xmlReader); 26 deserial = (TRequest) deserializer.Deserialize(xmlReader);
27 } 27 }
28 28
29 TResponse response = m_method(deserial); 29 TResponse response = m_method(deserial);
30 30
31 using (XmlWriter xmlWriter = XmlTextWriter.Create(responseStream)) 31 using (XmlWriter xmlWriter = XmlTextWriter.Create(responseStream))
32 { 32 {
33 XmlSerializer serializer = new XmlSerializer(typeof (TResponse)); 33 XmlSerializer serializer = new XmlSerializer(typeof (TResponse));
34 serializer.Serialize(xmlWriter, response); 34 serializer.Serialize(xmlWriter, response);
35 } 35 }
36 } 36 }
37 } 37 }
38} \ No newline at end of file 38} \ No newline at end of file
diff --git a/OpenSim/Framework/Servers/RestObjectPoster.cs b/OpenSim/Framework/Servers/RestObjectPoster.cs
index 77660a0..b77cbcc 100644
--- a/OpenSim/Framework/Servers/RestObjectPoster.cs
+++ b/OpenSim/Framework/Servers/RestObjectPoster.cs
@@ -1,49 +1,49 @@
1using System; 1using System;
2using System.IO; 2using System.IO;
3using System.Net; 3using System.Net;
4using System.Text; 4using System.Text;
5using System.Xml; 5using System.Xml;
6using System.Xml.Serialization; 6using System.Xml.Serialization;
7 7
8 8
9namespace OpenSim.Framework.Servers 9namespace OpenSim.Framework.Servers
10{ 10{
11 public class RestObjectPoster 11 public class RestObjectPoster
12 { 12 {
13 public static void BeginPostObject<TRequest>(string requestUrl, TRequest obj) 13 public static void BeginPostObject<TRequest>(string requestUrl, TRequest obj)
14 { 14 {
15 Type type = typeof(TRequest); 15 Type type = typeof(TRequest);
16 16
17 WebRequest request = WebRequest.Create(requestUrl); 17 WebRequest request = WebRequest.Create(requestUrl);
18 request.Method = "POST"; 18 request.Method = "POST";
19 request.ContentType = "text/xml"; 19 request.ContentType = "text/xml";
20 20
21 MemoryStream buffer = new MemoryStream(); 21 MemoryStream buffer = new MemoryStream();
22 22
23 XmlWriterSettings settings = new XmlWriterSettings(); 23 XmlWriterSettings settings = new XmlWriterSettings();
24 settings.Encoding = Encoding.UTF8; 24 settings.Encoding = Encoding.UTF8;
25 25
26 using (XmlWriter writer = XmlWriter.Create(buffer, settings)) 26 using (XmlWriter writer = XmlWriter.Create(buffer, settings))
27 { 27 {
28 XmlSerializer serializer = new XmlSerializer(type); 28 XmlSerializer serializer = new XmlSerializer(type);
29 serializer.Serialize(writer, obj); 29 serializer.Serialize(writer, obj);
30 writer.Flush(); 30 writer.Flush();
31 } 31 }
32 32
33 int length = (int)buffer.Length; 33 int length = (int)buffer.Length;
34 request.ContentLength = length; 34 request.ContentLength = length;
35 35
36 Stream requestStream = request.GetRequestStream(); 36 Stream requestStream = request.GetRequestStream();
37 requestStream.Write(buffer.ToArray(), 0, length); 37 requestStream.Write(buffer.ToArray(), 0, length);
38 IAsyncResult result = request.BeginGetResponse(AsyncCallback, request); 38 IAsyncResult result = request.BeginGetResponse(AsyncCallback, request);
39 } 39 }
40 40
41 private static void AsyncCallback(IAsyncResult result) 41 private static void AsyncCallback(IAsyncResult result)
42 { 42 {
43 WebRequest request = (WebRequest)result.AsyncState; 43 WebRequest request = (WebRequest)result.AsyncState;
44 using (WebResponse resp = request.EndGetResponse(result)) 44 using (WebResponse resp = request.EndGetResponse(result))
45 { 45 {
46 } 46 }
47 } 47 }
48 } 48 }
49} \ No newline at end of file 49} \ No newline at end of file