diff options
author | Justin Clark-Casey (justincc) | 2014-11-05 19:36:53 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2014-11-25 23:23:11 +0000 |
commit | 06a5d6e9ef163abaadbf81c98b54c042751fae89 (patch) | |
tree | 535d0f508e2844326cacefb3f40db670fd11f5b7 /OpenSim/Region/CoreModules | |
parent | Add incoming packet async handling engine to queue some inbound udp async req... (diff) | |
download | opensim-SC-06a5d6e9ef163abaadbf81c98b54c042751fae89.zip opensim-SC-06a5d6e9ef163abaadbf81c98b54c042751fae89.tar.gz opensim-SC-06a5d6e9ef163abaadbf81c98b54c042751fae89.tar.bz2 opensim-SC-06a5d6e9ef163abaadbf81c98b54c042751fae89.tar.xz |
Introduce an IteratingUuidGatherer where each fetch from the asset service (iteration) can be controlled by the caller.
This is to enable an imminent change where incoming HG scene object fetching can assess the time taken by each request rather than being forced to perform all requests in one call.
Soon, this will replace the existing UuidGatherer since it is both simpler and more flexible.
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index 522de79..be409bb 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | |||
@@ -571,9 +571,22 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
571 | "[HG ENTITY TRANSFER MODULE]: Incoming attachment {0} for HG user {1} with asset server {2}", | 571 | "[HG ENTITY TRANSFER MODULE]: Incoming attachment {0} for HG user {1} with asset server {2}", |
572 | so.Name, so.AttachedAvatar, url); | 572 | so.Name, so.AttachedAvatar, url); |
573 | 573 | ||
574 | Dictionary<UUID, sbyte> ids = new Dictionary<UUID, sbyte>(); | 574 | IteratingHGUuidGatherer uuidGatherer = new IteratingHGUuidGatherer(Scene.AssetService, url); |
575 | HGUuidGatherer uuidGatherer = new HGUuidGatherer(Scene.AssetService, url); | 575 | uuidGatherer.RecordAssetUuids(so); |
576 | uuidGatherer.GatherAssetUuids(so, ids); | 576 | |
577 | // XXX: We will shortly use this iterating mechanism to check if a fetch is taking too long | ||
578 | // but just for now we will simply fetch everything. If this was permanent could use | ||
579 | // GatherAll() | ||
580 | while (uuidGatherer.GatherNext()) | ||
581 | m_log.DebugFormat( | ||
582 | "[HG ENTITY TRANSFER]: Gathered attachment {0} for HG user {1} with asset server {2}", | ||
583 | so.Name, so.OwnerID, url); | ||
584 | |||
585 | IDictionary<UUID, sbyte> ids = uuidGatherer.GetGatheredUuids(); | ||
586 | |||
587 | m_log.DebugFormat( | ||
588 | "[HG ENTITY TRANSFER]: Fetching {0} assets for attachment {1} for HG user {2} with asset server {3}", | ||
589 | ids.Count, so.Name, so.OwnerID, url); | ||
577 | 590 | ||
578 | foreach (KeyValuePair<UUID, sbyte> kvp in ids) | 591 | foreach (KeyValuePair<UUID, sbyte> kvp in ids) |
579 | uuidGatherer.FetchAsset(kvp.Key); | 592 | uuidGatherer.FetchAsset(kvp.Key); |