From 0f3314c04ccd07e0ff9b5be69903b0a72dd73115 Mon Sep 17 00:00:00 2001
From: John Hurliman
Date: Thu, 8 Apr 2010 15:00:01 -0700
Subject: Backported GetTextureModule and IAssetService.GetCached()
---
OpenSim/Services/AssetService/AssetService.cs | 5 +++++
OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs | 8 ++++++++
.../Services/Connectors/Asset/HGAssetServiceConnector.cs | 14 ++++++++++++++
OpenSim/Services/Interfaces/IAssetService.cs | 10 +++++++++-
4 files changed, 36 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Services')
diff --git a/OpenSim/Services/AssetService/AssetService.cs b/OpenSim/Services/AssetService/AssetService.cs
index b9723a8..ed87f3f 100644
--- a/OpenSim/Services/AssetService/AssetService.cs
+++ b/OpenSim/Services/AssetService/AssetService.cs
@@ -93,6 +93,11 @@ namespace OpenSim.Services.AssetService
return m_Database.GetAsset(assetID);
}
+ public AssetBase GetCached(string id)
+ {
+ return Get(id);
+ }
+
public AssetMetadata GetMetadata(string id)
{
UUID assetID;
diff --git a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
index 8e311d7..84fbcd3 100644
--- a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
@@ -111,6 +111,14 @@ namespace OpenSim.Services.Connectors
return asset;
}
+ public AssetBase GetCached(string id)
+ {
+ if (m_Cache != null)
+ return m_Cache.Get(id);
+
+ return null;
+ }
+
public AssetMetadata GetMetadata(string id)
{
if (m_Cache != null)
diff --git a/OpenSim/Services/Connectors/Asset/HGAssetServiceConnector.cs b/OpenSim/Services/Connectors/Asset/HGAssetServiceConnector.cs
index 677169d..34df54a 100644
--- a/OpenSim/Services/Connectors/Asset/HGAssetServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Asset/HGAssetServiceConnector.cs
@@ -116,6 +116,20 @@ namespace OpenSim.Services.Connectors
return null;
}
+ public AssetBase GetCached(string id)
+ {
+ string url = string.Empty;
+ string assetID = string.Empty;
+
+ if (StringToUrlAndAssetID(id, out url, out assetID))
+ {
+ IAssetService connector = GetConnector(url);
+ return connector.GetCached(assetID);
+ }
+
+ return null;
+ }
+
public AssetMetadata GetMetadata(string id)
{
string url = string.Empty;
diff --git a/OpenSim/Services/Interfaces/IAssetService.cs b/OpenSim/Services/Interfaces/IAssetService.cs
index 6dfe78d..3be6815 100644
--- a/OpenSim/Services/Interfaces/IAssetService.cs
+++ b/OpenSim/Services/Interfaces/IAssetService.cs
@@ -51,7 +51,15 @@ namespace OpenSim.Services.Interfaces
byte[] GetData(string id);
///
- /// Get an asset asynchronously
+ /// Synchronously fetches an asset from the local cache only
+ ///
+ /// Asset ID
+ /// The fetched asset, or null if it did not exist in the local cache
+ AssetBase GetCached(string id);
+
+ ///
+ /// Get an asset synchronously or asynchronously (depending on whether
+ /// it is locally cached) and fire a callback with the fetched asset
///
/// The asset id
/// Represents the requester. Passed back via the handler
--
cgit v1.1