diff options
author | Adam Frisby | 2008-04-21 09:12:47 +0000 |
---|---|---|
committer | Adam Frisby | 2008-04-21 09:12:47 +0000 |
commit | f741a62d540f0c04eedebd9c7eb072fc50c4a111 (patch) | |
tree | f94ce4b084c538feb450dc5827358d231da37dbe /OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs | |
parent | Update svn properties. (diff) | |
download | opensim-SC-f741a62d540f0c04eedebd9c7eb072fc50c4a111.zip opensim-SC-f741a62d540f0c04eedebd9c7eb072fc50c4a111.tar.gz opensim-SC-f741a62d540f0c04eedebd9c7eb072fc50c4a111.tar.bz2 opensim-SC-f741a62d540f0c04eedebd9c7eb072fc50c4a111.tar.xz |
* 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.
Diffstat (limited to 'OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs')
-rw-r--r-- | OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs | 41 |
1 files changed, 24 insertions, 17 deletions
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 @@ | |||
27 | 27 | ||
28 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
29 | using System.IO; | 29 | using System.IO; |
30 | using System.IO.Compression; | ||
30 | using System.Text; | 31 | using System.Text; |
31 | using System.Xml; | 32 | using System.Xml; |
32 | using OpenSim.Region.Environment.Scenes; | 33 | using OpenSim.Region.Environment.Scenes; |
33 | 34 | ||
34 | namespace OpenSim.Region.Environment.Modules.ExportSerialiser | 35 | namespace OpenSim.Region.Environment.Modules.ExportSerialiser |
35 | { | 36 | { |
36 | class SerialiseObjects : IFileSerialiser | 37 | internal class SerialiseObjects : IFileSerialiser |
37 | { | 38 | { |
38 | #region IFileSerialiser Members | 39 | #region IFileSerialiser Members |
39 | 40 | ||
41 | public string WriteToFile(Scene scene, string dir) | ||
42 | { | ||
43 | string targetFileName = dir + "objects.xml"; | ||
44 | |||
45 | SaveSerialisedToFile(targetFileName, scene); | ||
46 | |||
47 | return "objects.xml"; | ||
48 | } | ||
49 | |||
50 | #endregion | ||
40 | 51 | ||
41 | public void SaveSerialisedToFile(string fileName, Scene scene) | 52 | public void SaveSerialisedToFile(string fileName, Scene scene) |
42 | { | 53 | { |
43 | int primCount = 0; | ||
44 | string xmlstream = "<scene>"; | 54 | string xmlstream = "<scene>"; |
45 | 55 | ||
46 | List<EntityBase> EntityList = scene.GetEntities(); | 56 | List<EntityBase> EntityList = scene.GetEntities(); |
@@ -50,8 +60,7 @@ namespace OpenSim.Region.Environment.Modules.ExportSerialiser | |||
50 | { | 60 | { |
51 | if (ent is SceneObjectGroup) | 61 | if (ent is SceneObjectGroup) |
52 | { | 62 | { |
53 | EntityXml.Add(((SceneObjectGroup)ent).ToXmlString2()); | 63 | EntityXml.Add(((SceneObjectGroup) ent).ToXmlString2()); |
54 | primCount++; | ||
55 | } | 64 | } |
56 | } | 65 | } |
57 | EntityXml.Sort(); | 66 | EntityXml.Sort(); |
@@ -69,26 +78,24 @@ namespace OpenSim.Region.Environment.Modules.ExportSerialiser | |||
69 | formatter.Formatting = Formatting.Indented; | 78 | formatter.Formatting = Formatting.Indented; |
70 | doc.WriteContentTo(formatter); | 79 | doc.WriteContentTo(formatter); |
71 | formatter.Flush(); | 80 | formatter.Flush(); |
72 | StreamReader reader = new StreamReader(stream); | ||
73 | 81 | ||
74 | stream.Seek(0, SeekOrigin.Begin); | 82 | stream.Seek(0, SeekOrigin.Begin); |
75 | 83 | ||
76 | FileStream objectsFile = new FileStream(fileName, FileMode.Create); | 84 | FileStream objectsFile = new FileStream(fileName, FileMode.Create); |
85 | |||
77 | stream.WriteTo(objectsFile); | 86 | stream.WriteTo(objectsFile); |
78 | objectsFile.Flush(); | 87 | objectsFile.Flush(); |
79 | objectsFile.Close(); | 88 | objectsFile.Close(); |
80 | 89 | ||
90 | #region GZip Compressed Version | ||
91 | FileStream objectsFileCompressed = new FileStream(fileName + ".gzs", FileMode.Create); | ||
92 | MemoryStream gzipMSStream = new MemoryStream(); | ||
93 | GZipStream gzipStream = new GZipStream(gzipMSStream, CompressionMode.Compress); | ||
94 | stream.WriteTo(gzipStream); | ||
95 | gzipMSStream.WriteTo(objectsFileCompressed); | ||
96 | objectsFileCompressed.Flush(); | ||
97 | objectsFileCompressed.Close(); | ||
98 | #endregion | ||
81 | } | 99 | } |
82 | |||
83 | public string WriteToFile(Scene scene, string dir) | ||
84 | { | ||
85 | string targetFileName = dir + "objects.xml"; | ||
86 | |||
87 | SaveSerialisedToFile(targetFileName, scene); | ||
88 | |||
89 | return "objects.xml"; | ||
90 | } | ||
91 | |||
92 | #endregion | ||
93 | } | 100 | } |
94 | } | 101 | } \ No newline at end of file |