aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/DataSnapshot/ObjectSnapshot.cs')
-rw-r--r--OpenSim/Region/DataSnapshot/ObjectSnapshot.cs166
1 files changed, 83 insertions, 83 deletions
diff --git a/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs b/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs
index 9222b48..cb74183 100644
--- a/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs
+++ b/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs
@@ -1,83 +1,83 @@
1using System; 1using System;
2using System.Collections.Generic; 2using System.Collections.Generic;
3using System.Text; 3using System.Text;
4using System.Xml; 4using System.Xml;
5using System.Reflection; 5using System.Reflection;
6using OpenSim.Region.Environment.Scenes; 6using OpenSim.Region.Environment.Scenes;
7using OpenSim.Framework; 7using OpenSim.Framework;
8using libsecondlife; 8using libsecondlife;
9 9
10namespace OpenSim.Region.DataSnapshot 10namespace OpenSim.Region.DataSnapshot
11{ 11{
12 public class ObjectSnapshot : IDataSnapshotProvider 12 public class ObjectSnapshot : IDataSnapshotProvider
13 { 13 {
14 private Scene m_scene = null; 14 private Scene m_scene = null;
15 private DataSnapshotManager m_parent = null; 15 private DataSnapshotManager m_parent = null;
16 private log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 16 private log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
17 17
18 public void Initialize(Scene scene, DataSnapshotManager parent) 18 public void Initialize(Scene scene, DataSnapshotManager parent)
19 { 19 {
20 m_scene = scene; 20 m_scene = scene;
21 m_parent = parent; 21 m_parent = parent;
22 } 22 }
23 23
24 public Scene GetParentScene 24 public Scene GetParentScene
25 { 25 {
26 get { return m_scene; } 26 get { return m_scene; }
27 } 27 }
28 28
29 public XmlNode RequestSnapshotData(XmlDocument nodeFactory) 29 public XmlNode RequestSnapshotData(XmlDocument nodeFactory)
30 { 30 {
31 XmlNode parent = nodeFactory.CreateNode(XmlNodeType.Element, "objectdata", ""); 31 XmlNode parent = nodeFactory.CreateNode(XmlNodeType.Element, "objectdata", "");
32 XmlNode node; 32 XmlNode node;
33#if LIBSL_IS_FIXED 33#if LIBSL_IS_FIXED
34 foreach (EntityBase entity in m_scene.Entities.Values) 34 foreach (EntityBase entity in m_scene.Entities.Values)
35 { 35 {
36 // only objects, not avatars 36 // only objects, not avatars
37 if (entity is SceneObjectGroup) 37 if (entity is SceneObjectGroup)
38 { 38 {
39 SceneObjectGroup obj = (SceneObjectGroup)entity; 39 SceneObjectGroup obj = (SceneObjectGroup)entity;
40 40
41 XmlNode xmlobject = nodeFactory.CreateNode(XmlNodeType.Element, "object", ""); 41 XmlNode xmlobject = nodeFactory.CreateNode(XmlNodeType.Element, "object", "");
42 42
43 node = nodeFactory.CreateNode(XmlNodeType.Element, "uuid", ""); 43 node = nodeFactory.CreateNode(XmlNodeType.Element, "uuid", "");
44 node.InnerText = obj.UUID.ToString(); 44 node.InnerText = obj.UUID.ToString();
45 xmlobject.AppendChild(node); 45 xmlobject.AppendChild(node);
46 46
47 SceneObjectPart m_rootPart = null; 47 SceneObjectPart m_rootPart = null;
48 try 48 try
49 { 49 {
50 Type sog = typeof(SceneObjectGroup); 50 Type sog = typeof(SceneObjectGroup);
51 FieldInfo rootField = sog.GetField("m_rootPart", BindingFlags.NonPublic | BindingFlags.Instance); 51 FieldInfo rootField = sog.GetField("m_rootPart", BindingFlags.NonPublic | BindingFlags.Instance);
52 if (rootField != null) 52 if (rootField != null)
53 { 53 {
54 m_rootPart = (SceneObjectPart)rootField.GetValue(obj); 54 m_rootPart = (SceneObjectPart)rootField.GetValue(obj);
55 } 55 }
56 } 56 }
57 catch (Exception e) 57 catch (Exception e)
58 { 58 {
59 Console.WriteLine("[DATASNAPSHOT] couldn't access field reflectively\n" + e.ToString()); 59 Console.WriteLine("[DATASNAPSHOT] couldn't access field reflectively\n" + e.ToString());
60 } 60 }
61 if (m_rootPart != null) 61 if (m_rootPart != null)
62 { 62 {
63 node = nodeFactory.CreateNode(XmlNodeType.Element, "title", ""); 63 node = nodeFactory.CreateNode(XmlNodeType.Element, "title", "");
64 node.InnerText = m_rootPart.Name; 64 node.InnerText = m_rootPart.Name;
65 xmlobject.AppendChild(node); 65 xmlobject.AppendChild(node);
66 66
67 node = nodeFactory.CreateNode(XmlNodeType.Element, "description", ""); 67 node = nodeFactory.CreateNode(XmlNodeType.Element, "description", "");
68 node.InnerText = m_rootPart.Description; 68 node.InnerText = m_rootPart.Description;
69 xmlobject.AppendChild(node); 69 xmlobject.AppendChild(node);
70 70
71 node = nodeFactory.CreateNode(XmlNodeType.Element, "flags", ""); 71 node = nodeFactory.CreateNode(XmlNodeType.Element, "flags", "");
72 node.InnerText = String.Format("{0:x}", m_rootPart.ObjectFlags); 72 node.InnerText = String.Format("{0:x}", m_rootPart.ObjectFlags);
73 xmlobject.AppendChild(node); 73 xmlobject.AppendChild(node);
74 } 74 }
75 parent.AppendChild(xmlobject); 75 parent.AppendChild(xmlobject);
76 } 76 }
77 } 77 }
78#endif 78#endif
79 return parent; 79 return parent;
80 80
81 } 81 }
82 } 82 }
83} 83}