mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 10:15:33 +08:00
* Make object persistence more granular by separating prim and prim inventory persistence
This commit is contained in:
@@ -81,6 +81,11 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
set { m_taskInventory = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tracks whether inventory has changed since the last persistent backup
|
||||
/// </summary>
|
||||
private bool HasInventoryChanged;
|
||||
|
||||
/// <summary>
|
||||
/// 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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Process inventory backup
|
||||
/// </summary>
|
||||
/// <param name="datastore"></param>
|
||||
public void ProcessInventoryBackup(IRegionDataStore datastore)
|
||||
{
|
||||
if (HasInventoryChanged)
|
||||
{
|
||||
datastore.StorePrimInventory(UUID, TaskInventory);
|
||||
|
||||
HasInventoryChanged = false;
|
||||
}
|
||||
}
|
||||
|
||||
public class InventoryStringBuilder
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user