From 1bf05a543c1328c31b7b107a3335f34e8d174ed8 Mon Sep 17 00:00:00 2001
From: Justin Clarke Casey
Date: Mon, 9 Mar 2009 18:35:26 +0000
Subject: * Move method documentation from AssetCache up to IAssetCache * No
functional changes
---
OpenSim/Framework/IAssetCache.cs | 71 +++++++++++++++++++++++++++++++++++++---
1 file changed, 66 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Framework/IAssetCache.cs')
diff --git a/OpenSim/Framework/IAssetCache.cs b/OpenSim/Framework/IAssetCache.cs
index 22f5755..8a184bb 100644
--- a/OpenSim/Framework/IAssetCache.cs
+++ b/OpenSim/Framework/IAssetCache.cs
@@ -30,25 +30,86 @@ using OpenMetaverse.Packets;
namespace OpenSim.Framework
{
-
public delegate void AssetRequestCallback(UUID assetId, AssetBase asset);
+ ///
+ /// Interface to the local asset cache. This is the mechanism through which assets can be added and requested.
+ ///
public interface IAssetCache : IAssetReceiver, IPlugin
{
-
+ ///
+ /// The 'server' from which assets can be requested and to which assets are persisted.
+ ///
IAssetServer AssetServer { get; }
+
+ void Initialise(ConfigSettings cs, IAssetServer server);
+ ///
+ /// Report statistical data to the log.
+ ///
void ShowState();
+
+ ///
+ /// Clear the asset cache.
+ ///
void Clear();
+
+ ///
+ /// Get an asset only if it's already in the cache.
+ ///
+ ///
+ ///
+ /// true if the asset was in the cache, false if it was not
bool TryGetCachedAsset(UUID assetID, out AssetBase asset);
+
+ ///
+ /// Asynchronously retrieve an asset.
+ ///
+ ///
+ ///
+ ///
+ /// A callback invoked when the asset has either been found or not found.
+ /// If the asset was found this is called with the asset UUID and the asset data
+ /// If the asset was not found this is still called with the asset UUID but with a null asset data reference
void GetAsset(UUID assetID, AssetRequestCallback callback, bool isTexture);
+
+ ///
+ /// Synchronously retreive an asset. If the asset isn't in the cache, a request will be made to the persistent store to
+ /// load it into the cache.
+ ///
+ ///
+ /// XXX We'll keep polling the cache until we get the asset or we exceed
+ /// the allowed number of polls. This isn't a very good way of doing things since a single thread
+ /// is processing inbound packets, so if the asset server is slow, we could block this for up to
+ /// the timeout period. Whereever possible we want to use the asynchronous callback GetAsset()
+ ///
+ ///
+ ///
+ /// null if the asset could not be retrieved
AssetBase GetAsset(UUID assetID, bool isTexture);
+
+ ///
+ /// Add an asset to both the persistent store and the cache.
+ ///
+ ///
void AddAsset(AssetBase asset);
+
+ ///
+ /// Expire an asset from the cache
+ ///
+ /// Allows you to clear a specific asset by uuid out
+ /// of the asset cache. This is needed because the osdynamic
+ /// texture code grows the asset cache without bounds. The
+ /// real solution here is a much better cache archicture, but
+ /// this is a stop gap measure until we have such a thing.
void ExpireAsset(UUID assetID);
+
+ ///
+ /// Handle an asset request from the client. The result will be sent back asynchronously.
+ ///
+ ///
+ ///
void AddAssetRequest(IClientAPI userInfo, TransferRequestPacket transferRequest);
-
- void Initialise(ConfigSettings cs, IAssetServer server);
-
}
public class AssetCachePluginInitialiser : PluginInitialiserBase
--
cgit v1.1