From ac07d853b89d9b2bda2dd058f7f9ea94211a26f1 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Aug 2010 15:58:17 +0100 Subject: remove duplicated serialization code --- OpenSim/Framework/PrimitiveBaseShape.cs | 38 ++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 12 deletions(-) (limited to 'OpenSim/Framework/PrimitiveBaseShape.cs') diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs index de7e42d..685599a 100644 --- a/OpenSim/Framework/PrimitiveBaseShape.cs +++ b/OpenSim/Framework/PrimitiveBaseShape.cs @@ -1238,7 +1238,7 @@ namespace OpenSim.Framework return null; } - public void WriteXml(XmlWriter writer) + public string ToXml() { lock (this) { @@ -1265,18 +1265,26 @@ namespace OpenSim.Framework xtw.WriteEndElement(); xtw.Flush(); - writer.WriteRaw(sw.ToString()); + return sw.ToString(); } } - } + } } - - public void ReadXml(XmlReader reader) + + public void WriteXml(XmlWriter writer) + { + writer.WriteRaw(ToXml()); + } + + public static MediaList FromXml(string rawXml) { - if (reader.IsEmptyElement) - return; - - string rawXml = reader.ReadInnerXml(); + MediaList ml = new MediaList(); + ml.ReadXml(rawXml); + return ml; + } + + public void ReadXml(string rawXml) + { using (StringReader sr = new StringReader(rawXml)) { using (XmlTextReader xtr = new XmlTextReader(sr)) @@ -1292,8 +1300,6 @@ namespace OpenSim.Framework xtr.ReadStartElement("osmedia"); OSDArray osdMeArray = (OSDArray)OSDParser.DeserializeLLSDXml(xtr.ReadInnerXml()); - - List mediaEntries = new List(); foreach (OSD osdMe in osdMeArray) { MediaEntry me = (osdMe is OSDMap ? MediaEntry.FromOSD(osdMe) : new MediaEntry()); @@ -1303,7 +1309,15 @@ namespace OpenSim.Framework xtr.ReadEndElement(); } } - } + } + + public void ReadXml(XmlReader reader) + { + if (reader.IsEmptyElement) + return; + + ReadXml(reader.ReadInnerXml()); + } } } } \ No newline at end of file -- cgit v1.1