diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs index 0605db5..401a238 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | |||
@@ -61,6 +61,16 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
61 | /// </summary> | 61 | /// </summary> |
62 | public string FilterContent { get; set; } | 62 | public string FilterContent { get; set; } |
63 | 63 | ||
64 | /// <summary> | ||
65 | /// Counter for inventory items saved to archive for passing to compltion event | ||
66 | /// </summary> | ||
67 | public int CountItems { get; set; } | ||
68 | |||
69 | /// <summary> | ||
70 | /// Counter for inventory items skipped due to permission filter option for passing to compltion event | ||
71 | /// </summary> | ||
72 | public int CountFiltered { get; set; } | ||
73 | |||
64 | /// <value> | 74 | /// <value> |
65 | /// Used to select all inventory nodes in a folder but not the folder itself | 75 | /// Used to select all inventory nodes in a folder but not the folder itself |
66 | /// </value> | 76 | /// </value> |
@@ -158,7 +168,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
158 | } | 168 | } |
159 | 169 | ||
160 | m_module.TriggerInventoryArchiveSaved( | 170 | m_module.TriggerInventoryArchiveSaved( |
161 | m_id, succeeded, m_userInfo, m_invPath, m_saveStream, reportedException); | 171 | m_id, succeeded, m_userInfo, m_invPath, m_saveStream, reportedException, CountItems, CountFiltered); |
162 | } | 172 | } |
163 | 173 | ||
164 | protected void SaveInvItem(InventoryItemBase inventoryItem, string path, Dictionary<string, object> options, IUserAccountService userAccountService) | 174 | protected void SaveInvItem(InventoryItemBase inventoryItem, string path, Dictionary<string, object> options, IUserAccountService userAccountService) |
@@ -174,6 +184,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
174 | "[INVENTORY ARCHIVER]: Skipping inventory item {0} {1} at {2}", | 184 | "[INVENTORY ARCHIVER]: Skipping inventory item {0} {1} at {2}", |
175 | inventoryItem.Name, inventoryItem.ID, path); | 185 | inventoryItem.Name, inventoryItem.ID, path); |
176 | } | 186 | } |
187 | |||
188 | CountFiltered++; | ||
189 | |||
177 | return; | 190 | return; |
178 | } | 191 | } |
179 | } | 192 | } |
@@ -184,6 +197,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
184 | m_log.InfoFormat( | 197 | m_log.InfoFormat( |
185 | "[INVENTORY ARCHIVER]: Insufficient permissions, skipping inventory item {0} {1} at {2}", | 198 | "[INVENTORY ARCHIVER]: Insufficient permissions, skipping inventory item {0} {1} at {2}", |
186 | inventoryItem.Name, inventoryItem.ID, path); | 199 | inventoryItem.Name, inventoryItem.ID, path); |
200 | |||
201 | // Count Items Excluded | ||
202 | CountFiltered++; | ||
203 | |||
187 | return; | 204 | return; |
188 | } | 205 | } |
189 | 206 | ||
@@ -202,6 +219,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
202 | 219 | ||
203 | AssetType itemAssetType = (AssetType)inventoryItem.AssetType; | 220 | AssetType itemAssetType = (AssetType)inventoryItem.AssetType; |
204 | 221 | ||
222 | // Count inventory items (different to asset count) | ||
223 | CountItems++; | ||
224 | |||
205 | // Don't chase down link asset items as they actually point to their target item IDs rather than an asset | 225 | // Don't chase down link asset items as they actually point to their target item IDs rather than an asset |
206 | if (SaveAssets && itemAssetType != AssetType.Link && itemAssetType != AssetType.LinkFolder) | 226 | if (SaveAssets && itemAssetType != AssetType.Link && itemAssetType != AssetType.LinkFolder) |
207 | m_assetGatherer.GatherAssetUuids(inventoryItem.AssetID, (sbyte)inventoryItem.AssetType, m_assetUuids); | 227 | m_assetGatherer.GatherAssetUuids(inventoryItem.AssetID, (sbyte)inventoryItem.AssetType, m_assetUuids); |
@@ -363,7 +383,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
363 | // We couldn't find the path indicated | 383 | // We couldn't find the path indicated |
364 | string errorMessage = string.Format("Aborted save. Could not find inventory path {0}", m_invPath); | 384 | string errorMessage = string.Format("Aborted save. Could not find inventory path {0}", m_invPath); |
365 | Exception e = new InventoryArchiverException(errorMessage); | 385 | Exception e = new InventoryArchiverException(errorMessage); |
366 | m_module.TriggerInventoryArchiveSaved(m_id, false, m_userInfo, m_invPath, m_saveStream, e); | 386 | m_module.TriggerInventoryArchiveSaved(m_id, false, m_userInfo, m_invPath, m_saveStream, e, 0, 0); |
367 | throw e; | 387 | throw e; |
368 | } | 388 | } |
369 | 389 | ||