nsIInputStreamPump

IID:400F5468-97E7-4d2b-9C65-A82AECC7AE82
Inherits From:nsIRequest

This interface provides a means to configure and use a input stream pump instance. The input stream pump will asynchronously read from a input stream, and push data to a nsIStreamListener instance. It utilizes the current thread's nsIEventTarget in order to make reading from the stream asynchronous.

If the given stream supports nsIAsyncInputStream, then the stream pump will call the stream's AsyncWait method to drive the stream listener. Otherwise, the stream will be read on a background thread utilizing the stream transport service. More details are provided below.

This interface is implemented by the following components:


Methods

void asyncRead ( nsIStreamListener listener , nsISupports listenerContext ) void init ( nsIInputStream stream , PRInt64 streamPos , PRInt64 streamLen , PRUint32 segmentSize , PRUint32 segmentCount , PRBool closeWhenDone )

void asyncRead ( nsIStreamListener listener , nsISupports listenerContext )

AsyncRead causes the input stream to be read in chunks and delivered asynchronously to the listener via OnDataAvailable.

Arguments:
listener: receives notifications.
listenerContext: passed to listener methods.

void init ( nsIInputStream stream , PRInt64 streamPos , PRInt64 streamLen , PRUint32 segmentSize , PRUint32 segmentCount , PRBool closeWhenDone )

Initialize the input stream pump.

Arguments:
stream: contains the data to be read. if the input stream is non-blocking, then it will be QI'd to nsIAsyncInputStream. if the QI succeeds then the stream will be read directly. otherwise, it will be read on a background thread using the stream transport service.
streamPos: specifies the stream offset from which to start reading. the offset value is absolute. pass -1 to specify the current offset. NOTE: this parameter is ignored if the underlying stream does not implement nsISeekableStream.
streamLen: specifies how much data to read from the stream. pass -1 to read all data available in the stream.
segmentSize: if the stream transport service is used, then this parameter specifies the segment size for the stream transport's buffer. pass 0 to specify the default value.
segmentCount: if the stream transport service is used, then this parameter specifies the segment count for the stream transport's buffer. pass 0 to specify the default value.
closeWhenDone: if true, the input stream will be closed after it has been read.

Reference documentation is generated from Mozilla's source.

Add a note User Contributed Notes
No comments available

Copyright © 1999 - 2005 XULPlanet.com