Refactor asset handling as per Ubit's suggestion

This commit is contained in:
Melanie Thielker
2017-02-01 16:31:01 +00:00
parent 5ceb315e34
commit a5151bb337
12 changed files with 75 additions and 111 deletions

View File

@@ -260,12 +260,9 @@ namespace OpenSim.Region.CoreModules.Asset
/// Cache doesn't guarantee in any situation that asset is stored to it.
/// </para>
/// </remarks>
public AssetBase Get(string id, out bool negative)
public bool Get(string id, out AssetBase assetBase)
{
negative = false;
m_getCount++;
AssetBase assetBase;
if (m_cache.TryGetValue(id, out assetBase))
m_hitCount++;
@@ -286,7 +283,7 @@ namespace OpenSim.Region.CoreModules.Asset
// if (null == assetBase)
// m_log.DebugFormat("[CENOME ASSET CACHE]: Asset {0} not in cache", id);
return assetBase;
return true;
}
#endregion

View File

@@ -115,8 +115,10 @@ namespace OpenSim.Region.CoreModules.Asset
public bool Check(string id)
{
// XXX This is probably not an efficient implementation.
bool negative;
return Get(id, out negative) != null;
AssetBase asset;
if (!Get(id, out asset))
return false;
return asset != null;
}
public void Cache(AssetBase asset)
@@ -130,10 +132,10 @@ namespace OpenSim.Region.CoreModules.Asset
// We don't do negative caching
}
public AssetBase Get(string id, out bool negative)
public bool Get(string id, out AssetBase asset)
{
negative = false;
return (AssetBase)m_Cache.Get(id);
asset = (AssetBase)m_Cache.Get(id);
return true;
}
public void Expire(string id)

View File

@@ -536,24 +536,23 @@ namespace OpenSim.Region.CoreModules.Asset
// For IAssetService
public AssetBase Get(string id)
{
bool negative;
return Get(id, out negative);
AssetBase asset;
Get(id, out asset);
return asset;
}
public AssetBase Get(string id, out bool negative)
public bool Get(string id, out AssetBase asset)
{
negative = false;
asset = null;
m_Requests++;
object dummy;
if (m_negativeCache.TryGetValue(id, out dummy))
{
negative = true;
return null;
return false;
}
AssetBase asset = null;
asset = GetFromWeakReference(id);
if (asset != null && m_updateFileTimeOnCacheHit)
{
@@ -592,7 +591,7 @@ namespace OpenSim.Region.CoreModules.Asset
GenerateCacheHitReport().ForEach(l => m_log.InfoFormat("[FLOTSAM ASSET CACHE]: {0}", l));
}
return asset;
return true;
}
public bool Check(string id)
@@ -607,8 +606,9 @@ namespace OpenSim.Region.CoreModules.Asset
public AssetBase GetCached(string id)
{
bool negative;
return Get(id, out negative);
AssetBase asset;
Get(id, out asset);
return asset;
}
public void Expire(string id)
@@ -1236,23 +1236,22 @@ namespace OpenSim.Region.CoreModules.Asset
public AssetMetadata GetMetadata(string id)
{
bool negative;
AssetBase asset = Get(id, out negative);
AssetBase asset;
Get(id, out asset);
return asset.Metadata;
}
public byte[] GetData(string id)
{
bool negative;
AssetBase asset = Get(id, out negative);
AssetBase asset;
Get(id, out asset);
return asset.Data;
}
public bool Get(string id, object sender, AssetRetrieved handler)
{
bool negative;
AssetBase asset = Get(id, out negative);
if (negative)
AssetBase asset;
if (!Get(id, out asset))
return false;
handler(id, sender, asset);
return true;
@@ -1284,8 +1283,9 @@ namespace OpenSim.Region.CoreModules.Asset
public bool UpdateContent(string id, byte[] data)
{
bool negative;
AssetBase asset = Get(id, out negative);
AssetBase asset;
if (!Get(id, out asset))
return false;
asset.Data = data;
Cache(asset);
return true;

View File

@@ -131,16 +131,15 @@ namespace OpenSim.Region.CoreModules.Asset
// We don't do negative caching
}
public AssetBase Get(string id, out bool negative)
public bool Get(string id, out AssetBase asset)
{
negative = false;
Object a = null;
m_Cache.TryGet(id, out a);
Object asset = null;
m_Cache.TryGet(id, out asset);
Debug(a);
Debug(asset);
return (AssetBase)asset;
asset = (AssetBase)a;
return true;
}
public void Expire(string id)