This interface allows consumption of primitive data types from a "binary
 stream" containing untagged, big-endian binary data, i.e. as produced by an
 implementation of nsIBinaryOutputStream.  This might be used, for example,
 to implement network protocols or to read from architecture-neutral disk
 files, i.e. ones that can be read and written by both big-endian and
 little-endian platforms.

 @See nsIBinaryOutputStream
[scriptable, uuid(7b456cb0-8772-11d3-90cf-0040056a906e)]
interface nsIBinaryInputStream : nsIInputStream

Methods


          
PRUint16 read16()

          
PRUint32 read32()

          
PRUint64 read64()

          
PRUint8 read8()
 Read 8-bits from the stream.

 @return that byte to be treated as a boolean.
PRBool readBoolean()
 Read an opaque byte array from the stream, storing the results
 as an array of PRUint8s.

 @param aLength the number of bytes that must be read.

 @throws NS_ERROR_FAILURE if it can't read aLength bytes
void readByteArray(in PRUint32 aLength, [array, retval, size_is(aLength)] out PRUint8 aBytes)
 Read an opaque byte array from the stream.

 @param aLength the number of bytes that must be read.

 @throws NS_ERROR_FAILURE if it can't read aLength bytes
void readBytes(in PRUint32 aLength, [retval, size_is(aLength)] out string aString)
 Read an 8-bit pascal style string from the stream.
 32-bit length field, followed by length 8-bit chars.
ACString readCString()

          
double readDouble()

          
float readFloat()
 Read an 16-bit pascal style string from the stream.
 32-bit length field, followed by length PRUnichars.
AString readString()

          
void setInputStream(in nsIInputStream aInputStream)