Linux Mac OSX Windows

Implemented by


  
[scriptable, uuid(fa9c7f6c-61b3-11d4-9877-00c04fa0cf4a)]
interface nsIInputStream : nsISupports

Methods

 @return number of bytes currently available in the stream
unsigned long available()
 nsIInputStream

 @status FROZEN

 
 Close the stream.
void close()
 @return true if stream is non-blocking
boolean isNonBlocking()
 
 Read data from the stream.

 @param aBuf the buffer into which the data is to be read
 @param aCount the maximum number of bytes to be read

 @return number of bytes read (may be less than aCount).
 @return 0 if reached end of file

 @throws NS_BASE_STREAM_WOULD_BLOCK if reading from the input stream would
   block the calling thread (non-blocking mode only)
 @throws <other-error> on failure
[noscript] unsigned long read(in charPtr aBuf, in unsigned long aCount)
 Low-level read method that has access to the stream's underlying buffer.
 The writer function may be called multiple times for segmented buffers.
 ReadSegments is expected to keep calling the writer until either there is
 nothing left to read or the writer returns an error.  ReadSegments should
 not call the writer with zero bytes to consume.

 @param aWriter the "consumer" of the data to be read
 @param aClosure opaque parameter passed to writer 
 @param aCount the maximum number of bytes to be read

 @return number of bytes read (may be less than aCount)
 @return 0 if reached end of file (or if aWriter refused to consume data)

 @throws NS_BASE_STREAM_WOULD_BLOCK if reading from the input stream would
   block the calling thread (non-blocking mode only)
 @throws <other-error> on failure

 NOTE: this function may be unimplemented if a stream has no underlying
 buffer (e.g., socket input stream).
[noscript] unsigned long readSegments(in nsWriteSegmentFun aWriter, in voidPtr aClosure, in unsigned long aCount)