An interface describing a readable stream of data. An input stream may be "blocking" or "non-blocking" (see the IsNonBlocking method). A blocking input stream may suspend the calling thread in order to satisfy a call to Close, Available, Read, or ReadSegments. A non-blocking input stream, on the other hand, must not block the calling thread of execution.
NOTE: blocking input streams are often read on a background thread to avoid locking up the main application thread. For this reason, it is generally the case that a blocking input stream should be implemented using thread- safe AddRef and Release.
Public Member Functions
|unsigned long||available ()|
|unsigned long||read (in charPtr aBuf, in unsigned long aCount)|
|unsigned long||readSegments (in nsWriteSegmentFun aWriter, in voidPtr aClosure, in unsigned long aCount)|
|NS_IMETHOD_ (nsrefcnt) Release(void)=0|
|NS_IMETHOD_ (nsrefcnt) AddRef(void)=0|
|NS_IMETHOD||QueryInterface (REFNSIID aIID, void **aInstancePtr)=0|