nsICachingChannel
| IID: | 830D4BCB-3E46-4011-9BDA-51A5D1AF891F |
| Inherits From: | nsISupports |
A channel may optionally implement this interface to allow clients to affect its behavior with respect to how it uses the cache service.
This interface provides: 1) Support for "stream as file" semantics (for JAR and plugins). 2) Support for "pinning" cached data in the cache (for printing and save-as). 3) Support for uniquely identifying cached data in cases when the URL is insufficient (e.g., HTTP form submission).
Constants
Properties
PRBool cacheAsFile
Specifies whether or not the data should be cached to a file. This may fail if the disk cache is not present. The value of this attribute is usually only settable during the processing of a channel's OnStartRequest. The default value of this attribute depends on the particular implementation of nsICachingChannel.
readonly nsIFile cacheFile
Get the "file" where the cached data can be found. This is valid for as long as a reference to the cache token is held. This may return an error if cacheAsFile is false.
PRBool cacheForOfflineUse
Specifies whether or not the data should be placed in the offline cache, in addition to normal memory/disk caching. This may fail if the offline cache is not present. The value of this attribute should be set before opening the channel.
nsISupports cacheKey
Set/get the cache key... uniquely identifies the data in the cache for this channel. Holding a reference to this key does NOT prevent the cached data from being removed.
A cache key retrieved from a particular instance of nsICachingChannel could be set on another instance of nsICachingChannel provided the underlying implementations are compatible and provided the new channel instance was created with the same URI. The implementation of nsICachingChannel would be expected to use the cache entry identified by the cache token. Depending on the value of nsIRequest::loadFlags, the cache entry may be validated, overwritten, or simply read.
The cache key may be NULL indicating that the URI of the channel is sufficient to locate the same cache entry. Setting a NULL cache key is likewise valid.
nsISupports cacheToken
Set/get the cache token... uniquely identifies the data in the cache. Holding a reference to this token prevents the cached data from being removed.
A cache token retrieved from a particular instance of nsICachingChannel could be set on another instance of nsICachingChannel provided the underlying implementations are compatible. The implementation of nsICachingChannel would be expected to only read from the cache entry identified by the cache token and not try to validate it.
The cache token can be QI'd to a nsICacheEntryInfo if more detail about the cache entry is needed (e.g., expiration time).
ACString offlineCacheClientID
The session into which to cache offline data. If not specified, data will be placed in "HTTP-offline"
nsISupports offlineCacheToken
The same as above but accessing the offline app cache token if there is any.
Methods
PRBool isFromCache ( )
TRUE if this channel's data is being loaded from the cache. This value is undefined before the channel fires its OnStartRequest notification and after the channel fires its OnStopRequest notification.
Reference documentation is generated from Mozilla's source.
