aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs37
1 files changed, 18 insertions, 19 deletions
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
index 8d21202..8add4bb 100644
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
+++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
@@ -104,6 +104,8 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
104 public AssetXferUploader( 104 public AssetXferUploader(
105 AgentAssetTransactions transactions, Scene scene, UUID transactionID, bool dumpAssetToFile) 105 AgentAssetTransactions transactions, Scene scene, UUID transactionID, bool dumpAssetToFile)
106 { 106 {
107 m_asset = new AssetBase();
108
107 m_transactions = transactions; 109 m_transactions = transactions;
108 m_transactionID = transactionID; 110 m_transactionID = transactionID;
109 m_Scene = scene; 111 m_Scene = scene;
@@ -188,9 +190,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
188 190
189 ourClient = remoteClient; 191 ourClient = remoteClient;
190 192
191 m_asset = new AssetBase() { FullID = assetID }; 193 m_asset.FullID = assetID;
192 m_asset.Name = "blank";
193 m_asset.Description = "empty";
194 m_asset.Type = type; 194 m_asset.Type = type;
195 m_asset.CreatorID = remoteClient.AgentId.ToString(); 195 m_asset.CreatorID = remoteClient.AgentId.ToString();
196 m_asset.Data = data; 196 m_asset.Data = data;
@@ -232,22 +232,15 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
232 232
233 if (m_createItem) 233 if (m_createItem)
234 { 234 {
235 DoCreateItem(m_createItemCallback); 235 CompleteCreateItem(m_createItemCallback);
236 } 236 }
237 else if (m_updateItem) 237 else if (m_updateItem)
238 { 238 {
239 StoreAssetForItemUpdate(m_updateItemData); 239 CompleteItemUpdate(m_updateItemData);
240
241 // Remove ourselves from the list of transactions if completion was delayed until the transaction
242 // was complete.
243 // TODO: Should probably do the same for create item.
244 m_transactions.RemoveXferUploader(m_transactionID);
245 } 240 }
246 else if (m_updateTaskItem) 241 else if (m_updateTaskItem)
247 { 242 {
248 StoreAssetForTaskItemUpdate(m_updateTaskItemData); 243 CompleteTaskItemUpdate(m_updateTaskItemData);
249
250 m_transactions.RemoveXferUploader(m_transactionID);
251 } 244 }
252// else if (m_storeLocal) 245// else if (m_storeLocal)
253// { 246// {
@@ -305,7 +298,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
305 { 298 {
306 if (m_uploadState == UploadState.Complete) 299 if (m_uploadState == UploadState.Complete)
307 { 300 {
308 DoCreateItem(callbackID); 301 CompleteCreateItem(callbackID);
309 } 302 }
310 else 303 else
311 { 304 {
@@ -332,7 +325,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
332 325
333 if (m_uploadState == UploadState.Complete) 326 if (m_uploadState == UploadState.Complete)
334 { 327 {
335 StoreAssetForItemUpdate(item); 328 CompleteItemUpdate(item);
336 } 329 }
337 else 330 else
338 { 331 {
@@ -358,7 +351,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
358 351
359 if (m_uploadState == UploadState.Complete) 352 if (m_uploadState == UploadState.Complete)
360 { 353 {
361 StoreAssetForTaskItemUpdate(taskItem); 354 CompleteTaskItemUpdate(taskItem);
362 } 355 }
363 else 356 else
364 { 357 {
@@ -372,29 +365,33 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
372 /// Store the asset for the given item when it has been uploaded. 365 /// Store the asset for the given item when it has been uploaded.
373 /// </summary> 366 /// </summary>
374 /// <param name="item"></param> 367 /// <param name="item"></param>
375 private void StoreAssetForItemUpdate(InventoryItemBase item) 368 private void CompleteItemUpdate(InventoryItemBase item)
376 { 369 {
377// m_log.DebugFormat( 370// m_log.DebugFormat(
378// "[ASSET XFER UPLOADER]: Storing asset {0} for earlier item update for {1} for {2}", 371// "[ASSET XFER UPLOADER]: Storing asset {0} for earlier item update for {1} for {2}",
379// m_asset.FullID, item.Name, ourClient.Name); 372// m_asset.FullID, item.Name, ourClient.Name);
380 373
381 m_Scene.AssetService.Store(m_asset); 374 m_Scene.AssetService.Store(m_asset);
375
376 m_transactions.RemoveXferUploader(m_transactionID);
382 } 377 }
383 378
384 /// <summary> 379 /// <summary>
385 /// Store the asset for the given task item when it has been uploaded. 380 /// Store the asset for the given task item when it has been uploaded.
386 /// </summary> 381 /// </summary>
387 /// <param name="taskItem"></param> 382 /// <param name="taskItem"></param>
388 private void StoreAssetForTaskItemUpdate(TaskInventoryItem taskItem) 383 private void CompleteTaskItemUpdate(TaskInventoryItem taskItem)
389 { 384 {
390// m_log.DebugFormat( 385// m_log.DebugFormat(
391// "[ASSET XFER UPLOADER]: Storing asset {0} for earlier task item update for {1} for {2}", 386// "[ASSET XFER UPLOADER]: Storing asset {0} for earlier task item update for {1} for {2}",
392// m_asset.FullID, taskItem.Name, ourClient.Name); 387// m_asset.FullID, taskItem.Name, ourClient.Name);
393 388
394 m_Scene.AssetService.Store(m_asset); 389 m_Scene.AssetService.Store(m_asset);
390
391 m_transactions.RemoveXferUploader(m_transactionID);
395 } 392 }
396 393
397 private void DoCreateItem(uint callbackID) 394 private void CompleteCreateItem(uint callbackID)
398 { 395 {
399 m_Scene.AssetService.Store(m_asset); 396 m_Scene.AssetService.Store(m_asset);
400 397
@@ -420,6 +417,8 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
420 ourClient.SendInventoryItemCreateUpdate(item, callbackID); 417 ourClient.SendInventoryItemCreateUpdate(item, callbackID);
421 else 418 else
422 ourClient.SendAlertMessage("Unable to create inventory item"); 419 ourClient.SendAlertMessage("Unable to create inventory item");
420
421 m_transactions.RemoveXferUploader(m_transactionID);
423 } 422 }
424 } 423 }
425} \ No newline at end of file 424} \ No newline at end of file