aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs')
-rw-r--r--OpenSim/Region/Environment/Modules/ExportSerialiser/SerialiseObjects.cs41
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
28using System.Collections.Generic; 28using System.Collections.Generic;
29using System.IO; 29using System.IO;
30using System.IO.Compression;
30using System.Text; 31using System.Text;
31using System.Xml; 32using System.Xml;
32using OpenSim.Region.Environment.Scenes; 33using OpenSim.Region.Environment.Scenes;
33 34
34namespace OpenSim.Region.Environment.Modules.ExportSerialiser 35namespace 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