aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
diff options
context:
space:
mode:
authordiva2009-05-15 05:00:25 +0000
committerdiva2009-05-15 05:00:25 +0000
commit5e4fc6e91e5edffd1dc23af4f583d6294f394a3d (patch)
tree497076db68193be2d14fc3788c1d80c74d8c977d /OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
parentsome sculpted prim geometry accuracy and meshing speed improvements (diff)
downloadopensim-SC_OLD-5e4fc6e91e5edffd1dc23af4f583d6294f394a3d.zip
opensim-SC_OLD-5e4fc6e91e5edffd1dc23af4f583d6294f394a3d.tar.gz
opensim-SC_OLD-5e4fc6e91e5edffd1dc23af4f583d6294f394a3d.tar.bz2
opensim-SC_OLD-5e4fc6e91e5edffd1dc23af4f583d6294f394a3d.tar.xz
Heart surgery on asset service code bits. Affects OpenSim.ini configuration -- please see the example. Affects region servers only.
This may break a lot of things, but it needs to go in. It was tested in standalone and the UCI grid, but it needs a lot more testing. Known problems: * HG asset transfers are borked for now * missing texture is missing * 3 unit tests commented out for now
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs')
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs20
1 files changed, 13 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
index d806a9c..6cd52ab 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
@@ -33,6 +33,7 @@ using log4net;
33using OpenMetaverse; 33using OpenMetaverse;
34using OpenSim.Framework; 34using OpenSim.Framework;
35using OpenSim.Framework.Serialization; 35using OpenSim.Framework.Serialization;
36using OpenSim.Services.Interfaces;
36 37
37namespace OpenSim.Region.CoreModules.World.Archiver 38namespace OpenSim.Region.CoreModules.World.Archiver
38{ 39{
@@ -71,13 +72,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver
71 /// <value> 72 /// <value>
72 /// Asset cache used to request the assets 73 /// Asset cache used to request the assets
73 /// </value> 74 /// </value>
74 protected IAssetCache m_assetCache; 75 protected IAssetService m_assetCache;
75 76
76 protected AssetsArchiver m_assetsArchiver; 77 protected AssetsArchiver m_assetsArchiver;
77 78
78 protected internal AssetsRequest( 79 protected internal AssetsRequest(
79 AssetsArchiver assetsArchiver, ICollection<UUID> uuids, 80 AssetsArchiver assetsArchiver, ICollection<UUID> uuids,
80 IAssetCache assetCache, AssetsRequestCallback assetsRequestCallback) 81 IAssetService assetCache, AssetsRequestCallback assetsRequestCallback)
81 { 82 {
82 m_assetsArchiver = assetsArchiver; 83 m_assetsArchiver = assetsArchiver;
83 m_uuids = uuids; 84 m_uuids = uuids;
@@ -96,7 +97,15 @@ namespace OpenSim.Region.CoreModules.World.Archiver
96 97
97 foreach (UUID uuid in m_uuids) 98 foreach (UUID uuid in m_uuids)
98 { 99 {
99 m_assetCache.GetAsset(uuid, AssetRequestCallback, true); 100 m_assetCache.Get(uuid.ToString(), this, AssetReceived);
101 }
102 }
103
104 protected void AssetReceived(string id, object sender, AssetBase asset)
105 {
106 if (asset != null)
107 {
108 AssetRequestCallback(asset.FullID, asset);
100 } 109 }
101 } 110 }
102 111
@@ -110,10 +119,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
110 //m_log.DebugFormat("[ARCHIVER]: Received callback for asset {0}", assetID); 119 //m_log.DebugFormat("[ARCHIVER]: Received callback for asset {0}", assetID);
111 120
112 if (asset != null) 121 if (asset != null)
113 { 122 {
114 // Make sure that we don't run out of memory by hogging assets in the cache
115 m_assetCache.ExpireAsset(assetID);
116
117 m_foundAssetUuids.Add(assetID); 123 m_foundAssetUuids.Add(assetID);
118 m_assetsArchiver.WriteAsset(asset); 124 m_assetsArchiver.WriteAsset(asset);
119 } 125 }