aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2009-05-14 18:08:54 +0000
committerJustin Clarke Casey2009-05-14 18:08:54 +0000
commit303aa4b65ead33c44122d61c0f9ef075236e6f76 (patch)
tree9007de8773b2f33af81ec2530214ecb3ef468db6 /OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
parent* refactor: break some of xml2 serialization out of sog (diff)
downloadopensim-SC-303aa4b65ead33c44122d61c0f9ef075236e6f76.zip
opensim-SC-303aa4b65ead33c44122d61c0f9ef075236e6f76.tar.gz
opensim-SC-303aa4b65ead33c44122d61c0f9ef075236e6f76.tar.bz2
opensim-SC-303aa4b65ead33c44122d61c0f9ef075236e6f76.tar.xz
* refactor: move bottom part of 'xml2' serializaton to separate class
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs105
1 files changed, 66 insertions, 39 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
index 0ec1922..03a4289 100644
--- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
+++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
@@ -129,13 +129,62 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
129 //m_log.DebugFormat("[SERIALIZER]: Finished deserialization of SOG {0}, {1}ms", Name, System.Environment.TickCount - time); 129 //m_log.DebugFormat("[SERIALIZER]: Finished deserialization of SOG {0}, {1}ms", Name, System.Environment.TickCount - time);
130 130
131 return sceneObject; 131 return sceneObject;
132 } 132 }
133 133
134 /// <summary> 134 /// <summary>
135 /// Deserialize a scene object from the 'xml2' format 135 /// Serialize a scene object to the original xml format
136 /// </summary> 136 /// </summary>
137 /// <param name="serialization"></param> 137 /// <param name="sceneObject"></param>
138 /// <returns></returns> 138 /// <returns></returns>
139 public static string ToOriginalXmlFormat(SceneObjectGroup sceneObject)
140 {
141 using (StringWriter sw = new StringWriter())
142 {
143 using (XmlTextWriter writer = new XmlTextWriter(sw))
144 {
145 ToOriginalXmlFormat(sceneObject, writer);
146 }
147
148 return sw.ToString();
149 }
150 }
151
152 /// <summary>
153 /// Serialize a scene object to the original xml format
154 /// </summary>
155 /// <param name="sceneObject"></param>
156 /// <returns></returns>
157 public static void ToOriginalXmlFormat(SceneObjectGroup sceneObject, XmlTextWriter writer)
158 {
159 //m_log.DebugFormat("[SERIALIZER]: Starting serialization of {0}", Name);
160 //int time = System.Environment.TickCount;
161
162 writer.WriteStartElement(String.Empty, "SceneObjectGroup", String.Empty);
163 writer.WriteStartElement(String.Empty, "RootPart", String.Empty);
164 sceneObject.RootPart.ToXml(writer);
165 writer.WriteEndElement();
166 writer.WriteStartElement(String.Empty, "OtherParts", String.Empty);
167
168 lock (sceneObject.Children)
169 {
170 foreach (SceneObjectPart part in sceneObject.Children.Values)
171 {
172 if (part.UUID != sceneObject.RootPart.UUID)
173 {
174 writer.WriteStartElement(String.Empty, "Part", String.Empty);
175 part.ToXml(writer);
176 writer.WriteEndElement();
177 }
178 }
179 }
180
181 writer.WriteEndElement(); // OtherParts
182 sceneObject.SaveScriptedState(writer);
183 writer.WriteEndElement(); // SceneObjectGroup
184
185 //m_log.DebugFormat("[SERIALIZER]: Finished serialization of SOG {0}, {1}ms", Name, System.Environment.TickCount - time);
186 }
187
139 public static SceneObjectGroup FromXml2Format(string xmlData) 188 public static SceneObjectGroup FromXml2Format(string xmlData)
140 { 189 {
141 //m_log.DebugFormat("[SOG]: Starting deserialization of SOG"); 190 //m_log.DebugFormat("[SOG]: Starting deserialization of SOG");
@@ -193,40 +242,38 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
193 //m_log.DebugFormat("[SERIALIZER]: Finished deserialization of SOG {0}, {1}ms", Name, System.Environment.TickCount - time); 242 //m_log.DebugFormat("[SERIALIZER]: Finished deserialization of SOG {0}, {1}ms", Name, System.Environment.TickCount - time);
194 243
195 return sceneObject; 244 return sceneObject;
196 } 245 }
197 246
198 /// <summary> 247 /// <summary>
199 /// Serialize a scene object to the original xml format 248 /// Serialize a scene object to the 'xml2' format.
200 /// </summary> 249 /// </summary>
201 /// <param name="sceneObject"></param> 250 /// <param name="sceneObject"></param>
202 /// <returns></returns> 251 /// <returns></returns>
203 public static string ToOriginalXmlFormat(SceneObjectGroup sceneObject) 252 public static string ToXml2Format(SceneObjectGroup sceneObject)
204 { 253 {
205 using (StringWriter sw = new StringWriter()) 254 using (StringWriter sw = new StringWriter())
206 { 255 {
207 using (XmlTextWriter writer = new XmlTextWriter(sw)) 256 using (XmlTextWriter writer = new XmlTextWriter(sw))
208 { 257 {
209 ToOriginalXmlFormat(sceneObject, writer); 258 ToXml2Format(sceneObject, writer);
210 } 259 }
211 260
212 return sw.ToString(); 261 return sw.ToString();
213 } 262 }
214 } 263 }
215 264
216 /// <summary> 265 /// <summary>
217 /// Serialize a scene object to the original xml format 266 /// Serialize a scene object to the 'xml2' format.
218 /// </summary> 267 /// </summary>
219 /// <param name="sceneObject"></param> 268 /// <param name="sceneObject"></param>
220 /// <returns></returns> 269 /// <returns></returns>
221 public static void ToOriginalXmlFormat(SceneObjectGroup sceneObject, XmlTextWriter writer) 270 public static void ToXml2Format(SceneObjectGroup sceneObject, XmlTextWriter writer)
222 { 271 {
223 //m_log.DebugFormat("[SERIALIZER]: Starting serialization of {0}", Name); 272 //m_log.DebugFormat("[SERIALIZER]: Starting serialization of SOG {0} to XML2", Name);
224 //int time = System.Environment.TickCount; 273 //int time = System.Environment.TickCount;
225 274
226 writer.WriteStartElement(String.Empty, "SceneObjectGroup", String.Empty); 275 writer.WriteStartElement(String.Empty, "SceneObjectGroup", String.Empty);
227 writer.WriteStartElement(String.Empty, "RootPart", String.Empty);
228 sceneObject.RootPart.ToXml(writer); 276 sceneObject.RootPart.ToXml(writer);
229 writer.WriteEndElement();
230 writer.WriteStartElement(String.Empty, "OtherParts", String.Empty); 277 writer.WriteStartElement(String.Empty, "OtherParts", String.Empty);
231 278
232 lock (sceneObject.Children) 279 lock (sceneObject.Children)
@@ -235,36 +282,16 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
235 { 282 {
236 if (part.UUID != sceneObject.RootPart.UUID) 283 if (part.UUID != sceneObject.RootPart.UUID)
237 { 284 {
238 writer.WriteStartElement(String.Empty, "Part", String.Empty);
239 part.ToXml(writer); 285 part.ToXml(writer);
240 writer.WriteEndElement();
241 } 286 }
242 } 287 }
243 } 288 }
244 289
245 writer.WriteEndElement(); // OtherParts 290 writer.WriteEndElement(); // End of OtherParts
246 sceneObject.SaveScriptedState(writer); 291 sceneObject.SaveScriptedState(writer);
247 writer.WriteEndElement(); // SceneObjectGroup 292 writer.WriteEndElement(); // End of SceneObjectGroup
248
249 //m_log.DebugFormat("[SERIALIZER]: Finished serialization of SOG {0}, {1}ms", Name, System.Environment.TickCount - time);
250 }
251
252 /// <summary>
253 /// Serialize a scene object to the 'xml2' format.
254 /// </summary>
255 /// <param name="sceneObject"></param>
256 /// <returns></returns>
257 public static string ToXml2Format(ISceneObject sceneObject)
258 {
259 using (StringWriter sw = new StringWriter())
260 {
261 using (XmlTextWriter writer = new XmlTextWriter(sw))
262 {
263 sceneObject.ToXml2(writer);
264 }
265 293
266 return sw.ToString(); 294 //m_log.DebugFormat("[SERIALIZER]: Finished serialization of SOG {0} to XML2, {1}ms", Name, System.Environment.TickCount - time);
267 } 295 }
268 }
269 } 296 }
270} 297}