Quelle nsICacheInfoChannel.idl
Sprache: C
/* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2 . 0 . If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
interface nsIAsyncOutputStream;
interface nsIInputStream;
%{C++
#include "nsTArray.h"
namespace mozilla {
namespace net {
class PreferredAlternativeDataTypeParams;
}
// namespace net
}
// namespace mozilla
%}
[ref] native ConstPreferredAlternativeDataTypeArray(
const nsTArray<mozilla::net::Pre
ferredAlternativeDataTypeParams>);
[scriptable, uuid(1 fb8ccf2-5 fa5-45 ec-bc57-8 c8022a5d0d3)]
interface nsIInputStreamReceiver : nsISupports
{
void onInputStreamReady(in nsIInputStream aStream);
};
/**
* A light variant of nsICacheInfoChannel , retrievable from
* nsICacheInfoChannel : : getCacheEntryWriteHandle .
*
* When an alternate data is written asynchronously after the response ,
* this can be used in order to avoid keeping the channels alive longer .
*/
[scriptable, builtinclass, uuid(0 da1249c-d5f5-494 e-842 b-2 c3197c92511)]
interface nsICacheEntryWriteHandle : nsISupports
{
/**
* Same as nsICacheInfoChannel : : openAlternativeOutputStream .
*/
nsIAsyncOutputStream openAlternativeOutputStream(in ACString type, in long long predictedSize);
};
[scriptable, builtinclass, uuid(72 c34415-c6eb-48 af-851 f-772 fa9ee5972)]
interface nsICacheInfoChannel : nsISupports
{
/**
* Get the number of times the cache entry has been opened . This attribute is
* equivalent to nsICachingChannel . cacheToken . fetchCount .
*
* @ throws NS_ERROR_NOT_AVAILABLE if the cache entry or the alternate data
* cache entry cannot be read .
*/
readonly attribute uint32_t cacheTokenFetchCount;
/**
* Get expiration time from cache token . This attribute is equivalent to
* nsICachingChannel . cacheToken . expirationTime .
*/
readonly attribute uint32_t cacheTokenExpirationTime;
/**
* 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 .
*/
boolean isFromCache();
/**
* True if this channel has a corresponding cache entry . This can be true
* even if isFromCache ( ) is false .
*/
boolean hasCacheEntry();
/**
* The unique ID of the corresponding nsICacheEntry from which the response is
* retrieved . By comparing the returned value , we can judge whether the data
* of two distinct nsICacheInfoChannels is from the same nsICacheEntry . This
* scenario could be useful when verifying whether the alternative data from
* one nsICacheInfochannel matches the main data from another one .
*
* Note : NS_ERROR_NOT_AVAILABLE is thrown when a nsICacheInfoChannel has no
* valid corresponding nsICacheEntry .
*/
uint64_t getCacheEntryId();
/**
* Set / get the cache key . This integer uniquely identifies the data in
* the cache for this channel .
*
* A cache key retrieved from a particular instance of nsICacheInfoChannel
* could be set on another instance of nsICacheInfoChannel provided the
* underlying implementations are compatible and provided the new
* channel instance was created with the same URI . The implementation of
* nsICacheInfoChannel 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 0 indicating that the URI of the channel is
* sufficient to locate the same cache entry . Setting a 0 cache key
* is likewise valid .
*/
attribute unsigned long cacheKey;
/**
* Tells the channel to behave as if the LOAD_FROM_CACHE flag has been set ,
* but without affecting the loads for the entire loadGroup in case of this
* channel being the default load group ' s channel .
*/
attribute boolean allowStaleCacheContent;
/**
* Tells the priority for LOAD_CACHE is raised over LOAD_BYPASS_CACHE or
* LOAD_BYPASS_LOCAL_CACHE in case those flags are set at the same time .
*/
attribute boolean preferCacheLoadOverBypass;
cenum PreferredAlternativeDataDeliveryType : 8 {
/**
* Do not deliver alternative data stream .
*/
NONE = 0 ,
/**
* Deliver alternative data stream upon additional request .
*/
ASYNC = 1 ,
/**
* Deliver alternative data stream during IPC parent / child serialization .
*/
SERIALIZE = 2 ,
};
cenum CacheDisposition : 8 {
kCacheUnresolved = 0 ,
kCacheHit = 1 ,
kCacheHitViaReval = 2 ,
kCacheMissedViaReval = 3 ,
kCacheMissed = 4 ,
kCacheUnknown = 5 ,
// Insert new values here
kCacheDispositionEnd
};
/**
* Tells the channel to be force validated during soft reload .
*/
attribute boolean forceValidateCacheContent;
/**
* Calling this method instructs the channel to serve the alternative data
* if that was previously saved in the cache , otherwise it will serve the
* real data .
* @ param type
* a string identifying the alt - data format
* @ param contentType
* the contentType for which the preference applies .
* an empty contentType means the preference applies for ANY contentType
* @ param deliverAltData
* if false , also if alt - data is available , the channel will deliver
* the original data .
*
* The method may be called several times , with different type and contentType .
*
* Must be called before AsyncOpen .
*/
void preferAlternativeDataType(in ACString type, in ACString contentType,
in nsICacheInfoChannel_PreferredAlternativeDataDeliveryType deliverAltData);
/**
* Get the preferred alternative data type set by preferAlternativeDataType ( ) .
* The returned types stand for the desired data type instead of the type of the
* information retrieved from the network stack .
*/
[noscript, notxpcom, nostdcall]
ConstPreferredAlternativeDataTypeArray preferredAlternativeDataTypes();
/**
* Holds the type of the alternative data representation that the channel
* is returning .
* Is empty string if no alternative data representation was requested , or
* if the requested representation wasn ' t found in the cache .
* Can only be called during or after OnStartRequest .
*/
readonly attribute ACString alternativeDataType;
/**
* If preferAlternativeDataType ( ) has been called passing deliverAltData
* equal to false , this attribute will expose the alt - data inputStream if
* avaiable .
*/
readonly attribute nsIInputStream alternativeDataInputStream;
/**
* Sometimes when the channel is delivering alt - data , we may want to somehow
* access the original content too . This method asynchronously opens the
* input stream and delivers it to the receiver .
*/
void getOriginalInputStream(in nsIInputStreamReceiver aReceiver);
/**
* Get a handle to open the alternative output stream for later use .
*/
nsICacheEntryWriteHandle getCacheEntryWriteHandle();
/**
* Opens and returns an output stream that a consumer may use to save an
* alternate representation of the data .
* Must be called after the OnStopRequest that delivered the real data .
* The consumer may choose to replace the saved alt representation .
* Opening the output stream will fail if there are any open input streams
* reading the already saved alt representation . After successfully opening
* an output stream , if there is an error before the entire alt data can be
* written successfully , the client must signal failure by passing an error
* code to CloseWithStatus ( ) .
*
* @ param type
* type of the alternative data representation
* @ param predictedSize
* Predicted size of the data that will be written . It ' s used to decide
* whether the resulting entry would exceed size limit , in which case
* an error is thrown . If the size isn ' t known in advance , - 1 should be
* passed .
*/
nsIAsyncOutputStream openAlternativeOutputStream(in ACString type, in long long predictedSize);
/**
* Returns the cache disposition for this channel .
*/
nsICacheInfoChannel_CacheDisposition getCacheDisposition();
};
%{ C++
namespace mozilla {
namespace net {
using PreferredAlternativeDataDeliveryTypeIPC = nsICacheInfoChannel::PreferredAlternativeDataDeliveryType;
}
} // namespace mozilla
%}
Messung V0.5 in Prozent C=89 H=100 G=94
¤ Dauer der Verarbeitung: 0.8 Sekunden
¤
*© Formatika GbR, Deutschland
2026-08-25
Neuigkeiten
Aktuelles
Motto des Tages
Open Source Software
Jenseits des Üblichen ....
Besucherstatistik
Statistik
#Sources=141584
#Domains=738142