From 99c0f4c9c7820f6340155f7af30ab91745774c93 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 3 Aug 2010 17:09:20 +0100
Subject: Simplify serialized version string. Change element capitalization
for consistency
THIS CHANGE ALTERS THE SERIALIZATION FORMAT, HOPEFULLY FOR THE LAST TIME. If you're testing, please start with a new database.
This commit also improves locking for manipulation of media entries.
---
OpenSim/Framework/PrimitiveBaseShape.cs | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Framework')
diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs
index 9b52fe6..70a61cc 100644
--- a/OpenSim/Framework/PrimitiveBaseShape.cs
+++ b/OpenSim/Framework/PrimitiveBaseShape.cs
@@ -180,6 +180,7 @@ namespace OpenSim.Framework
/// Entries to store media textures on each face
///
/// Do not change this value directly - always do it through an IMoapModule.
+ /// Lock before manipulating.
public MediaList Media { get; set; }
public PrimitiveBaseShape()
@@ -1219,6 +1220,11 @@ namespace OpenSim.Framework
return prim;
}
+ ///
+ /// Encapsulates a list of media entries.
+ ///
+ /// This class is necessary because we want to replace auto-serialization of MediaEntry with something more
+ /// OSD like and less vulnerable to change.
public class MediaList : List, IXmlSerializable
{
public const string MEDIA_TEXTURE_TYPE = "sl";
@@ -1240,10 +1246,9 @@ namespace OpenSim.Framework
{
using (XmlTextWriter xtw = new XmlTextWriter(sw))
{
- xtw.WriteStartElement("osmedia");
+ xtw.WriteStartElement("OSMedia");
xtw.WriteAttributeString("type", MEDIA_TEXTURE_TYPE);
- xtw.WriteAttributeString("major_version", "0");
- xtw.WriteAttributeString("minor_version", "1");
+ xtw.WriteAttributeString("version", "0.1");
OSDArray meArray = new OSDArray();
foreach (MediaEntry me in this)
@@ -1252,7 +1257,7 @@ namespace OpenSim.Framework
meArray.Add(osd);
}
- xtw.WriteStartElement("osdata");
+ xtw.WriteStartElement("OSData");
xtw.WriteRaw(OSDParser.SerializeLLSDXmlString(meArray));
xtw.WriteEndElement();
@@ -1291,7 +1296,7 @@ namespace OpenSim.Framework
if (type != MEDIA_TEXTURE_TYPE)
return;
- xtr.ReadStartElement("osmedia");
+ xtr.ReadStartElement("OSMedia");
OSDArray osdMeArray = (OSDArray)OSDParser.DeserializeLLSDXml(xtr.ReadInnerXml());
foreach (OSD osdMe in osdMeArray)
--
cgit v1.1