diff options
author | Justin Clarke Casey | 2008-02-20 23:21:51 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2008-02-20 23:21:51 +0000 |
commit | b0c5ef0b68c8664d250d0b0c0c5c1ddb7eab3acf (patch) | |
tree | 4408c9d9ec8f42ac4644447590399065cca0b25e | |
parent | Treads command lists threads, but not thread name (yet) (diff) | |
download | opensim-SC-b0c5ef0b68c8664d250d0b0c0c5c1ddb7eab3acf.zip opensim-SC-b0c5ef0b68c8664d250d0b0c0c5c1ddb7eab3acf.tar.gz opensim-SC-b0c5ef0b68c8664d250d0b0c0c5c1ddb7eab3acf.tar.bz2 opensim-SC-b0c5ef0b68c8664d250d0b0c0c5c1ddb7eab3acf.tar.xz |
* Eliminate AssetCache.CopyAsset()
* Resolve a bad logic bug in AssetCache.GetAsset()
* This may make some asset related things work better (possibly getting main map images will now be improved).
-rw-r--r-- | OpenSim/Framework/Communications/Cache/AssetCache.cs | 30 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 58 |
2 files changed, 30 insertions, 58 deletions
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 5e6bd5f..8f8e362 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs | |||
@@ -299,6 +299,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
299 | 299 | ||
300 | if (TryGetCachedAsset(assetID, out asset)) | 300 | if (TryGetCachedAsset(assetID, out asset)) |
301 | { | 301 | { |
302 | return asset; | ||
303 | } | ||
304 | else | ||
305 | { | ||
302 | m_assetServer.RequestAsset(assetID, isTexture); | 306 | m_assetServer.RequestAsset(assetID, isTexture); |
303 | 307 | ||
304 | do | 308 | do |
@@ -316,10 +320,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
316 | 320 | ||
317 | return null; | 321 | return null; |
318 | } | 322 | } |
319 | else | ||
320 | { | ||
321 | return asset; | ||
322 | } | ||
323 | } | 323 | } |
324 | 324 | ||
325 | /// <summary> | 325 | /// <summary> |
@@ -387,28 +387,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
387 | m_log.DebugFormat("[ASSET CACHE]: Adding {0} {1} [{2}]: {3}.", temporary, type, asset.FullID, result); | 387 | m_log.DebugFormat("[ASSET CACHE]: Adding {0} {1} [{2}]: {3}.", temporary, type, asset.FullID, result); |
388 | } | 388 | } |
389 | 389 | ||
390 | /// <summary> | ||
391 | /// Copy an asset and add it to the cache with a new assetID. | ||
392 | /// XXX We shouldn't actually ever need to do this! | ||
393 | /// </summary> | ||
394 | /// <param name="assetID"></param> | ||
395 | /// <returns></returns> | ||
396 | public AssetBase CopyAsset(LLUUID assetID) | ||
397 | { | ||
398 | AssetBase asset; | ||
399 | |||
400 | if (TryGetCachedAsset(assetID, out asset)) | ||
401 | { | ||
402 | asset.FullID = LLUUID.Random(); // TODO: check for conflicts | ||
403 | AddAsset(asset); | ||
404 | return asset; | ||
405 | } | ||
406 | else | ||
407 | { | ||
408 | return null; | ||
409 | } | ||
410 | } | ||
411 | |||
412 | // See IAssetReceiver | 390 | // See IAssetReceiver |
413 | public void AssetReceived(AssetBase asset, bool IsTexture) | 391 | public void AssetReceived(AssetBase asset, bool IsTexture) |
414 | { | 392 | { |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 6ca855d..a759173 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
51 | /// </summary> | 51 | /// </summary> |
52 | public void StartScripts() | 52 | public void StartScripts() |
53 | { | 53 | { |
54 | m_log.Info("[PRIMINVENTORY]: Starting scripts in scene"); | 54 | m_log.Info("[PRIM INVENTORY]: Starting scripts in scene"); |
55 | 55 | ||
56 | foreach (SceneObjectGroup group in Entities.Values) | 56 | foreach (SceneObjectGroup group in Entities.Values) |
57 | { | 57 | { |
@@ -90,7 +90,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
90 | if (!TryGetAvatar(avatarId, out avatar)) | 90 | if (!TryGetAvatar(avatarId, out avatar)) |
91 | { | 91 | { |
92 | m_log.ErrorFormat( | 92 | m_log.ErrorFormat( |
93 | "[AGENTINVENTORY]: Could not find avatar {0} to add inventory item", avatarId); | 93 | "[AGENT INVENTORY]: Could not find avatar {0} to add inventory item", avatarId); |
94 | return; | 94 | return; |
95 | } | 95 | } |
96 | 96 | ||
@@ -153,7 +153,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
153 | else | 153 | else |
154 | { | 154 | { |
155 | m_log.ErrorFormat( | 155 | m_log.ErrorFormat( |
156 | "[AGENTINVENTORY]: " + | 156 | "[AGENT INVENTORY]: " + |
157 | "Avatar {0} cannot be found to update its inventory item asset", | 157 | "Avatar {0} cannot be found to update its inventory item asset", |
158 | avatarId); | 158 | avatarId); |
159 | } | 159 | } |
@@ -178,7 +178,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
178 | if (null == group) | 178 | if (null == group) |
179 | { | 179 | { |
180 | m_log.ErrorFormat( | 180 | m_log.ErrorFormat( |
181 | "[PRIMINVENTORY]: " + | 181 | "[PRIM INVENTORY]: " + |
182 | "Prim inventory update requested for item ID {0} in prim ID {1} but this prim does not exist", | 182 | "Prim inventory update requested for item ID {0} in prim ID {1} but this prim does not exist", |
183 | itemId, primId); | 183 | itemId, primId); |
184 | 184 | ||
@@ -227,7 +227,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
227 | else | 227 | else |
228 | { | 228 | { |
229 | m_log.ErrorFormat( | 229 | m_log.ErrorFormat( |
230 | "[PRIMINVENTORY]: " + | 230 | "[PRIM INVENTORY]: " + |
231 | "Avatar {0} cannot be found to update its prim item asset", | 231 | "Avatar {0} cannot be found to update its prim item asset", |
232 | avatarId); | 232 | avatarId); |
233 | } | 233 | } |
@@ -284,7 +284,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
284 | else | 284 | else |
285 | { | 285 | { |
286 | m_log.Error( | 286 | m_log.Error( |
287 | "[AGENTINVENTORY]: Agent ID " + remoteClient.AgentId + " not found for an inventory item update."); | 287 | "[AGENT INVENTORY]: Agent ID " + remoteClient.AgentId + " not found for an inventory item update."); |
288 | } | 288 | } |
289 | } | 289 | } |
290 | 290 | ||
@@ -297,7 +297,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
297 | CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(oldAgentID); | 297 | CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(oldAgentID); |
298 | if (userInfo == null) | 298 | if (userInfo == null) |
299 | { | 299 | { |
300 | m_log.Error("[AGENTINVENTORY]: Failed to find user " + oldAgentID.ToString()); | 300 | m_log.Error("[AGENT INVENTORY]: Failed to find user " + oldAgentID.ToString()); |
301 | return; | 301 | return; |
302 | } | 302 | } |
303 | 303 | ||
@@ -306,29 +306,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
306 | item = userInfo.RootFolder.HasItem(oldItemID); | 306 | item = userInfo.RootFolder.HasItem(oldItemID); |
307 | if (item == null) | 307 | if (item == null) |
308 | { | 308 | { |
309 | m_log.Error("[AGENTINVENTORY]: Failed to find item " + oldItemID.ToString()); | 309 | m_log.Error("[AGENT INVENTORY]: Failed to find item " + oldItemID.ToString()); |
310 | return; | 310 | return; |
311 | } | 311 | } |
312 | } | 312 | } |
313 | else | 313 | else |
314 | { | 314 | { |
315 | m_log.Error("[AGENTINVENTORY]: Failed to find item " + oldItemID.ToString()); | 315 | m_log.Error("[AGENT INVENTORY]: Failed to find item " + oldItemID.ToString()); |
316 | return; | 316 | return; |
317 | } | 317 | } |
318 | } | 318 | } |
319 | 319 | ||
320 | |||
321 | AssetBase asset = AssetCache.CopyAsset(item.assetID); | ||
322 | if (asset == null) | ||
323 | { | ||
324 | m_log.Warn("[AGENTINVENTORY]: Failed to find asset " + item.assetID.ToString()); | ||
325 | return; | ||
326 | } | ||
327 | |||
328 | asset.Name = (newName.Length == 0) ? item.inventoryName : newName; | ||
329 | |||
330 | // TODO: preserve current permissions? | 320 | // TODO: preserve current permissions? |
331 | CreateNewInventoryItem(remoteClient, newFolderID, callbackID, asset, item.inventoryNextPermissions); | 321 | CreateNewInventoryItem( |
322 | remoteClient, newFolderID, callbackID, | ||
323 | AssetCache.GetAsset(item.assetID, (item.assetType == (int)AssetType.Texture ? true : false)), | ||
324 | item.inventoryNextPermissions); | ||
332 | } | 325 | } |
333 | 326 | ||
334 | private AssetBase CreateAsset(string name, string description, sbyte invType, sbyte assetType, byte[] data) | 327 | private AssetBase CreateAsset(string name, string description, sbyte invType, sbyte assetType, byte[] data) |
@@ -347,13 +340,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
347 | string newName) | 340 | string newName) |
348 | { | 341 | { |
349 | m_log.Info( | 342 | m_log.Info( |
350 | "[AGENTINVENTORY]: " + | 343 | "[AGENT INVENTORY]: " + |
351 | "Moving item for " + remoteClient.AgentId.ToString()); | 344 | "Moving item for " + remoteClient.AgentId.ToString()); |
352 | 345 | ||
353 | CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | 346 | CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); |
354 | if (userInfo == null) | 347 | if (userInfo == null) |
355 | { | 348 | { |
356 | m_log.Error("[AGENTINVENTORY]: Failed to find user " + remoteClient.AgentId.ToString()); | 349 | m_log.Error("[AGENT INVENTORY]: Failed to find user " + remoteClient.AgentId.ToString()); |
357 | return; | 350 | return; |
358 | } | 351 | } |
359 | 352 | ||
@@ -374,13 +367,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
374 | } | 367 | } |
375 | else | 368 | else |
376 | { | 369 | { |
377 | m_log.Error("[AGENTINVENTORY]: Failed to find item " + itemID.ToString()); | 370 | m_log.Error("[AGENT INVENTORY]: Failed to find item " + itemID.ToString()); |
378 | return; | 371 | return; |
379 | } | 372 | } |
380 | } | 373 | } |
381 | else | 374 | else |
382 | { | 375 | { |
383 | m_log.Error("[AGENTINVENTORY]: Failed to find item " + itemID.ToString() + ", no root folder"); | 376 | m_log.Error("[AGENT INVENTORY]: Failed to find item " + itemID.ToString() + ", no root folder"); |
384 | return; | 377 | return; |
385 | } | 378 | } |
386 | } | 379 | } |
@@ -482,7 +475,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
482 | = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | 475 | = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); |
483 | if (userInfo == null) | 476 | if (userInfo == null) |
484 | { | 477 | { |
485 | m_log.Error("[AGENTINVENTORY]: Failed to find user " + remoteClient.AgentId.ToString()); | 478 | m_log.Error("[AGENT INVENTORY]: Failed to find user " + remoteClient.AgentId.ToString()); |
486 | return; | 479 | return; |
487 | } | 480 | } |
488 | 481 | ||
@@ -506,7 +499,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
506 | = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | 499 | = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); |
507 | if (userInfo == null) | 500 | if (userInfo == null) |
508 | { | 501 | { |
509 | m_log.Error("[AGENTINVENTORY]: Failed to find user " + remoteClient.AgentId.ToString()); | 502 | m_log.Error("[AGENT INVENTORY]: Failed to find user " + remoteClient.AgentId.ToString()); |
510 | return; | 503 | return; |
511 | } | 504 | } |
512 | 505 | ||
@@ -558,7 +551,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
558 | else | 551 | else |
559 | { | 552 | { |
560 | m_log.ErrorFormat( | 553 | m_log.ErrorFormat( |
561 | "[PRIMINVENTORY]: Inventory requested of prim {0} which doesn't exist", primLocalID); | 554 | "[PRIM INVENTORY]: Inventory requested of prim {0} which doesn't exist", primLocalID); |
562 | } | 555 | } |
563 | } | 556 | } |
564 | 557 | ||
@@ -584,7 +577,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
584 | else | 577 | else |
585 | { | 578 | { |
586 | m_log.ErrorFormat( | 579 | m_log.ErrorFormat( |
587 | "[PRIMINVENTORY]: " + | 580 | "[PRIM INVENTORY]: " + |
588 | "Removal of item {0} requested of prim {1} but this prim does not exist", | 581 | "Removal of item {0} requested of prim {1} but this prim does not exist", |
589 | itemID, | 582 | itemID, |
590 | localID); | 583 | localID); |
@@ -608,7 +601,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
608 | // TODO Retrieve itemID from client's inventory to pass on | 601 | // TODO Retrieve itemID from client's inventory to pass on |
609 | //group.AddInventoryItem(remoteClient, primLocalID, null); | 602 | //group.AddInventoryItem(remoteClient, primLocalID, null); |
610 | m_log.InfoFormat( | 603 | m_log.InfoFormat( |
611 | "[PRIMINVENTORY]: " + | 604 | "[PRIM INVENTORY]: " + |
612 | "Non script prim inventory not yet implemented!" | 605 | "Non script prim inventory not yet implemented!" |
613 | + "\nUpdateTaskInventory called with item {0}, folder {1}, primLocalID {2}, user {3}", | 606 | + "\nUpdateTaskInventory called with item {0}, folder {1}, primLocalID {2}, user {3}", |
614 | itemID, folderID, primLocalID, remoteClient.Name); | 607 | itemID, folderID, primLocalID, remoteClient.Name); |
@@ -616,7 +609,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
616 | else | 609 | else |
617 | { | 610 | { |
618 | m_log.WarnFormat( | 611 | m_log.WarnFormat( |
619 | "[PRIMINVENTORY]: " + | 612 | "[PRIM INVENTORY]: " + |
620 | "Update with item {0} requested of prim {1} for {2} but this prim does not exist", | 613 | "Update with item {0} requested of prim {1} for {2} but this prim does not exist", |
621 | itemID, primLocalID, remoteClient.Name); | 614 | itemID, primLocalID, remoteClient.Name); |
622 | } | 615 | } |
@@ -663,7 +656,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
663 | else | 656 | else |
664 | { | 657 | { |
665 | m_log.ErrorFormat( | 658 | m_log.ErrorFormat( |
666 | "[PRIMINVENTORY]: " + | 659 | "[PRIM INVENTORY]: " + |
667 | "Could not rez script {0} into prim local ID {1} for user {2}" | 660 | "Could not rez script {0} into prim local ID {1} for user {2}" |
668 | + " because the prim could not be found in the region!", | 661 | + " because the prim could not be found in the region!", |
669 | item.inventoryName, localID, remoteClient.Name); | 662 | item.inventoryName, localID, remoteClient.Name); |
@@ -672,7 +665,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
672 | else | 665 | else |
673 | { | 666 | { |
674 | m_log.ErrorFormat( | 667 | m_log.ErrorFormat( |
675 | "[PRIMINVENTORY]: Could not find script inventory item {0} to rez for {1}!", | 668 | "[PRIM INVENTORY]: Could not find script inventory item {0} to rez for {1}!", |
676 | itemID, remoteClient.Name); | 669 | itemID, remoteClient.Name); |
677 | } | 670 | } |
678 | } | 671 | } |
@@ -824,6 +817,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
824 | } | 817 | } |
825 | } | 818 | } |
826 | } | 819 | } |
820 | |||
827 | public void RezSingleAttachment(IClientAPI remoteClient, LLUUID itemID, uint AttachmentPt, | 821 | public void RezSingleAttachment(IClientAPI remoteClient, LLUUID itemID, uint AttachmentPt, |
828 | uint ItemFlags, uint NextOwnerMask) | 822 | uint ItemFlags, uint NextOwnerMask) |
829 | { | 823 | { |