From 504ae63669e5c57cd89e8213b853c27506012f79 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 21 Jan 2008 15:06:49 +0000 Subject: * Make object persistence more granular by separating prim and prim inventory persistence --- .../Scenes/SceneObjectPart.Inventory.cs | 26 +++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs') diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs index 1a9e6c4..c0297cf 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs @@ -82,6 +82,11 @@ namespace OpenSim.Region.Environment.Scenes } /// + /// Tracks whether inventory has changed since the last persistent backup + /// + private bool HasInventoryChanged; + + /// /// Reset LLUUIDs for all the items in the prim's inventory. This involves either generating /// new ones or setting existing UUIDs to the correct parent UUIDs /// @@ -207,6 +212,7 @@ namespace OpenSim.Region.Environment.Scenes } m_inventorySerial++; + HasInventoryChanged = true; } /// @@ -224,7 +230,7 @@ namespace OpenSim.Region.Environment.Scenes TriggerScriptChangedEvent(Changed.INVENTORY); } } - + m_inventorySerial++; } @@ -268,6 +274,8 @@ namespace OpenSim.Region.Environment.Scenes m_taskInventory[item.ItemID] = item; m_inventorySerial++; TriggerScriptChangedEvent(Changed.INVENTORY); + + HasInventoryChanged = true; return true; } @@ -300,6 +308,8 @@ namespace OpenSim.Region.Environment.Scenes m_inventorySerial++; TriggerScriptChangedEvent(Changed.INVENTORY); + HasInventoryChanged = true; + return type; } else @@ -380,6 +390,20 @@ namespace OpenSim.Region.Environment.Scenes xferManager.AddNewFile(m_inventoryFileName, fileData); } } + + /// + /// Process inventory backup + /// + /// + public void ProcessInventoryBackup(IRegionDataStore datastore) + { + if (HasInventoryChanged) + { + datastore.StorePrimInventory(UUID, TaskInventory); + + HasInventoryChanged = false; + } + } public class InventoryStringBuilder { -- cgit v1.1