/* 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 nsIEventTarget;
interface nsIInputStreamLengthCallback;
/**
* Note : Instead of using these interfaces directly , consider to use
* InputStreamLengthHelper class .
*/
[uuid(
452 d059f-
9 a9c-
4434 -
8839 -e10d1405647c)]
interface nsIInputStreamLength : nsISupports
{
/**
* Returns the total length of the stream if known . Otherwise it returns - 1 .
* This is different than calling available ( ) which returns the number of
* bytes ready to be read from the stream .
* - 1 is a valid value for a stream that doesn ' t know its length . For
* instance , a pipe stream could return such value .
*
* It could throw NS_BASE_STREAM_WOULD_BLOCK if the inputStream is
* non - blocking . If this happens , you should use
* nsIAsyncInputStreamLength : : asyncLengthWait ( ) .
*
* If the stream has already been read ( read ( ) / readSegments ( ) / close ( ) / seek ( )
* methods has been called ) , length ( ) returns NS_ERROR_NOT_AVAILABLE .
*
* This is not an attribute because a stream can change its length . For
* instance , if the stream is a file inputStream and the underlying OS file
* changes , its length will change as well .
*/
long long length();
};
[uuid(b63f9ecf-
4668 -
44 a3-
93 bd-
72 dbc65a6125)]
interface nsIAsyncInputStreamLength : nsISupports
{
/**
* If the stream is non - blocking , nsIInputStreamLength : : length ( ) can return
* NS_BASE_STREAM_WOULD_BLOCK . The caller must then wait for the stream to
* know its length .
*
* If the stream implements nsIAsyncInputStreamLength , then the caller can
* use this interface to request an asynchronous notification when the
* stream ' s length becomes known ( via the AsyncLengthWait method ) .
* If the length is already known , the aCallback will be still called
* asynchronously .
*
* If the stream has already been read ( read ( ) / readSegments ( ) / close ( ) / seek ( )
* methods has been called ) , length ( ) returns NS_ERROR_NOT_AVAILABLE .
*
* @ param aCallback
* This object is notified when the length becomes known . This
* parameter may be null to clear an existing callback .
* @ param aEventTarget
* Specify that the notification must be delivered to a specific event
* target .
*/
void asyncLengthWait(in nsIInputStreamLengthCallback aCallback,
in nsIEventTarget aEventTarget);
};
/**
* This is a companion interface for
* nsIAsyncInputStreamLength : : asyncLengthWait .
*/
[function, uuid(
9 c0c13b9-
1 b33-
445 d-
8 adb-a8a7866a6c06)]
interface nsIInputStreamLengthCallback : nsISupports
{
/**
* Called to inform what the total length of the stream is .
*
* @ param aStream
* The stream whose asyncLengthWait method was called .
* @ param aLength
* The stream ' s length . It can be - 1 if the stream doesn ' t know its
* length . For instance , this can happen for a pipe inputStream .
*/
void onInputStreamLengthReady(in nsIAsyncInputStreamLength aStream,
in
long long aLength);
};
Messung V0.5 in Prozent C=94 H=100 G=96
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland