From f741a62d540f0c04eedebd9c7eb072fc50c4a111 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Mon, 21 Apr 2008 09:12:47 +0000 Subject: * Formatted ExportSerialiserModule and SvnBackupModule * Added a form of GZip compression support to object.xml files produced by exportserialiser. Will look towards standard GZip support. File compression seems to be highly worthwhile reducing a 1.5mb sim state to 62kb. --- .../Modules/ExportSerialiser/SerialiseObjects.cs | 41 +++++++++++++--------- 1 file changed, 24 insertions(+), 17 deletions(-) (limited to 'OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs') diff --git a/OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs b/OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs index ac80f40..7e5cf47 100644 --- a/OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs +++ b/OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs @@ -27,20 +27,30 @@ using System.Collections.Generic; using System.IO; +using System.IO.Compression; using System.Text; using System.Xml; using OpenSim.Region.Environment.Scenes; namespace OpenSim.Region.Environment.Modules.ExportSerialiser { - class SerialiseObjects : IFileSerialiser + internal class SerialiseObjects : IFileSerialiser { #region IFileSerialiser Members + public string WriteToFile(Scene scene, string dir) + { + string targetFileName = dir + "objects.xml"; + + SaveSerialisedToFile(targetFileName, scene); + + return "objects.xml"; + } + + #endregion public void SaveSerialisedToFile(string fileName, Scene scene) { - int primCount = 0; string xmlstream = ""; List EntityList = scene.GetEntities(); @@ -50,8 +60,7 @@ namespace OpenSim.Region.Environment.Modules.ExportSerialiser { if (ent is SceneObjectGroup) { - EntityXml.Add(((SceneObjectGroup)ent).ToXmlString2()); - primCount++; + EntityXml.Add(((SceneObjectGroup) ent).ToXmlString2()); } } EntityXml.Sort(); @@ -69,26 +78,24 @@ namespace OpenSim.Region.Environment.Modules.ExportSerialiser formatter.Formatting = Formatting.Indented; doc.WriteContentTo(formatter); formatter.Flush(); - StreamReader reader = new StreamReader(stream); stream.Seek(0, SeekOrigin.Begin); FileStream objectsFile = new FileStream(fileName, FileMode.Create); + stream.WriteTo(objectsFile); objectsFile.Flush(); objectsFile.Close(); + #region GZip Compressed Version + FileStream objectsFileCompressed = new FileStream(fileName + ".gzs", FileMode.Create); + MemoryStream gzipMSStream = new MemoryStream(); + GZipStream gzipStream = new GZipStream(gzipMSStream, CompressionMode.Compress); + stream.WriteTo(gzipStream); + gzipMSStream.WriteTo(objectsFileCompressed); + objectsFileCompressed.Flush(); + objectsFileCompressed.Close(); + #endregion } - - public string WriteToFile(Scene scene, string dir) - { - string targetFileName = dir + "objects.xml"; - - SaveSerialisedToFile(targetFileName, scene); - - return "objects.xml"; - } - - #endregion } -} +} \ No newline at end of file -- cgit v1.1