From 3f6c4c150e3910e79ee3dc94f9304c16265512c0 Mon Sep 17 00:00:00 2001
From: John Hurliman
Date: Thu, 8 Apr 2010 12:31:44 -0700
Subject: * Adds IAssetService.GetCached() to allow asset fetching from the
local cache only * Adds GetTextureModule that implements the "GetTexture"
capability, aka HTTP texture fetching. This is a significantly optimized path
that does not require any server-side JPEG2000 decoding, texture priority
queue, or UDP file transfer * Sanity check for null reference in
LLClientView.RefreshGroupMembership()
---
OpenSim/Services/AssetService/AssetService.cs | 5 +++++
OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs | 8 ++++++++
.../Services/Connectors/Asset/HGAssetServiceConnector.cs | 14 ++++++++++++++
.../Connectors/SimianGrid/SimianAssetServiceConnector.cs | 8 ++++++++
OpenSim/Services/Interfaces/IAssetService.cs | 7 +++++++
5 files changed, 42 insertions(+)
(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 a5c157d..65b3537 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/Connectors/SimianGrid/SimianAssetServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs
index 36c51c3..79e49a1 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs
@@ -123,6 +123,14 @@ namespace OpenSim.Services.Connectors.SimianGrid
return GetRemote(id);
}
+ public AssetBase GetCached(string id)
+ {
+ if (m_cache != null)
+ return m_cache.Get(id);
+
+ return null;
+ }
+
///
/// Get an asset's metadata
///
diff --git a/OpenSim/Services/Interfaces/IAssetService.cs b/OpenSim/Services/Interfaces/IAssetService.cs
index f8bedfe..3be6815 100644
--- a/OpenSim/Services/Interfaces/IAssetService.cs
+++ b/OpenSim/Services/Interfaces/IAssetService.cs
@@ -51,6 +51,13 @@ namespace OpenSim.Services.Interfaces
byte[] GetData(string id);
///
+ /// 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
///
--
cgit v1.1