aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs24
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