From a89385818d35dd991aa29f835fdb742e0923c26e Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Sat, 12 Jul 2008 22:14:38 +0000 Subject: * On archive loading, tell the user how many objects we are ignoring because they already exist in the scene * (ability to give objects new uuids will come later) --- .../Modules/World/Archiver/ArchiveReadRequest.cs | 16 +++++++++++++--- .../Modules/World/Serialiser/IRegionSerialiser.cs | 2 +- .../Modules/World/Serialiser/SceneXmlLoader.cs | 9 +++++---- 3 files changed, 19 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region/Environment/Modules') diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs index 0e37197..c9f8fce 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs @@ -103,11 +103,14 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects", serialisedSceneObjects.Count); IRegionSerialiser serialiser = m_scene.RequestModuleInterface(); - ICollection sceneObjects = new List(); + ICollection sceneObjects = new List(); foreach (string serialisedSceneObject in serialisedSceneObjects) - { - sceneObjects.Add(serialiser.LoadGroupFromXml2(m_scene, serialisedSceneObject)); + { + SceneObjectGroup sceneObject = serialiser.LoadGroupFromXml2(m_scene, serialisedSceneObject); + + if (null != sceneObject) + sceneObjects.Add(sceneObject); } m_log.Debug("[ARCHIVER]: Starting scripts"); @@ -117,6 +120,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver sceneObject.CreateScriptInstances(0, true); } + m_log.InfoFormat("[ARCHIVER]: Restored {0} objects to the scene", sceneObjects.Count); + + int ignoredObjects = serialisedSceneObjects.Count - sceneObjects.Count; + + if (ignoredObjects > 0) + m_log.WarnFormat("[ARCHIVER]: Ignored {0} objects that already existed in the scene", ignoredObjects); + m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive"); } diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs index 0fc8ac3..6e48f8e 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs @@ -85,7 +85,7 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser /// /// /// - /// The scene object created + /// The scene object created. null if the scene object already existed SceneObjectGroup LoadGroupFromXml2(Scene scene, string xmlString); /// diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs index f283ecb..bd19a7e 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs @@ -180,14 +180,15 @@ namespace OpenSim.Region.Environment.Scenes /// /// /// - /// The scene object created + /// The scene object created. null if the scene object already existed protected static SceneObjectGroup CreatePrimFromXml2(Scene scene, string xmlData) { SceneObjectGroup obj = new SceneObjectGroup(xmlData); - scene.AddRestoredSceneObject(obj, true); - - return obj; + if (scene.AddRestoredSceneObject(obj, true)) + return obj; + else + return null; } public static void SavePrimsToXml2(Scene scene, string fileName) -- cgit v1.1