From c9944b8aaf6320658e916f5f4ff151e6bbe7f4cc Mon Sep 17 00:00:00 2001 From: Jim Radford Date: Thu, 23 Apr 2009 09:54:52 +0000 Subject: [PATCH] LIBOMV-183 Adds SaveAssetIntoInventoryHandler delegate and OnSaveAssetToInventory event to InventoryManager to allow client to deal with packet after logoutreply handler is fired. git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2645 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse/InventoryManager.cs | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/OpenMetaverse/InventoryManager.cs b/OpenMetaverse/InventoryManager.cs index 5572f19d..b1041f14 100644 --- a/OpenMetaverse/InventoryManager.cs +++ b/OpenMetaverse/InventoryManager.cs @@ -900,6 +900,13 @@ namespace OpenMetaverse /// public delegate void NotecardUploadedAssetCallback(bool success, string status, UUID itemID, UUID assetID); + /// + /// Fired when local inventory store needs to be updated. Generally at logout to update a local cache + /// + /// the assets UUID + /// The new AssetID of the item, or UUID.Zero + public delegate void SaveAssetToInventoryCallback(UUID itemID, UUID newAssetID); + #endregion Delegates #region Events @@ -943,6 +950,11 @@ namespace OpenMetaverse /// public event TaskInventoryReplyCallback OnTaskInventoryReply; + /// + /// Fired when a SaveAssetToInventory packet is received, generally after the logout reply handler + /// + public event SaveAssetToInventoryCallback OnSaveAssetToInventory; + #endregion Events #region String Arrays @@ -3029,11 +3041,12 @@ namespace OpenMetaverse private void SaveAssetIntoInventoryHandler(Packet packet, Simulator simulator) { - //SaveAssetIntoInventoryPacket save = (SaveAssetIntoInventoryPacket)packet; - - // FIXME: Find this item in the inventory structure and mark the parent as needing an update - //save.InventoryData.ItemID; - Logger.Log("SaveAssetIntoInventory packet received, someone write this function!", Helpers.LogLevel.Error, _Client); + if (OnSaveAssetToInventory != null) + { + SaveAssetIntoInventoryPacket save = (SaveAssetIntoInventoryPacket)packet; + try { OnSaveAssetToInventory(save.InventoryData.ItemID, save.InventoryData.NewAssetID); } + catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, _Client, e); } + } } private void InventoryDescendentsHandler(Packet packet, Simulator simulator)