aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Common/XmlRpcCS/XmlRpcRequestDeserializer.cs
diff options
context:
space:
mode:
authorAdam Frisby2007-07-11 08:02:47 +0000
committerAdam Frisby2007-07-11 08:02:47 +0000
commit5c7ffdde0b9642a42e8f5987e06eb01220ff7776 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /Common/XmlRpcCS/XmlRpcRequestDeserializer.cs
parentWho would have known that the only way of specifying utf-8 without preamble, ... (diff)
downloadopensim-SC-5c7ffdde0b9642a42e8f5987e06eb01220ff7776.zip
opensim-SC-5c7ffdde0b9642a42e8f5987e06eb01220ff7776.tar.gz
opensim-SC-5c7ffdde0b9642a42e8f5987e06eb01220ff7776.tar.bz2
opensim-SC-5c7ffdde0b9642a42e8f5987e06eb01220ff7776.tar.xz
* Wiping trunk in prep for Sugilite
Diffstat (limited to '')
-rw-r--r--Common/XmlRpcCS/XmlRpcRequestDeserializer.cs92
1 files changed, 0 insertions, 92 deletions
diff --git a/Common/XmlRpcCS/XmlRpcRequestDeserializer.cs b/Common/XmlRpcCS/XmlRpcRequestDeserializer.cs
deleted file mode 100644
index 126a172..0000000
--- a/Common/XmlRpcCS/XmlRpcRequestDeserializer.cs
+++ /dev/null
@@ -1,92 +0,0 @@
1/*
2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
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
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
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28namespace Nwc.XmlRpc
29{
30 using System;
31 using System.Collections;
32 using System.Diagnostics;
33 using System.IO;
34 using System.Xml;
35
36 /// <summary>Class to deserialize XML data representing a request.</summary>
37 public class XmlRpcRequestDeserializer : XmlRpcDeserializer
38 {
39 static private XmlRpcRequestDeserializer _singleton;
40 /// <summary>A static singleton instance of this deserializer.</summary>
41 [Obsolete("This object is now thread safe, just use an instance.", false)]
42 static public XmlRpcRequestDeserializer Singleton
43 {
44 get
45 {
46 if (_singleton == null)
47 _singleton = new XmlRpcRequestDeserializer();
48
49 return _singleton;
50 }
51 }
52
53 /// <summary>Static method that parses XML data into a request using the Singleton.</summary>
54 /// <param name="xmlData"><c>StreamReader</c> containing an XML-RPC request.</param>
55 /// <returns><c>XmlRpcRequest</c> object resulting from the parse.</returns>
56 override public Object Deserialize(TextReader xmlData)
57 {
58 XmlTextReader reader = new XmlTextReader(xmlData);
59
60 XmlRpcRequest request = new XmlRpcRequest();
61 bool done = false;
62
63 lock (this)
64 {
65 Reset();
66 while (!done && reader.Read())
67 {
68 DeserializeNode(reader); // Parent parse...
69 switch (reader.NodeType)
70 {
71 case XmlNodeType.EndElement:
72 switch (reader.Name)
73 {
74 case METHOD_NAME:
75 request.MethodName = _text;
76 break;
77 case METHOD_CALL:
78 done = true;
79 break;
80 case PARAM:
81 request.Params.Add(_value);
82 _text = null;
83 break;
84 }
85 break;
86 }
87 }
88 }
89 return request;
90 }
91 }
92}