Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions | Public Attributes
nsIConverterInputStream Interface Reference

A unichar input stream that wraps an input stream. More...

import "nsIConverterInputStream.idl";

Inheritance diagram for nsIConverterInputStream:
Inheritance graph
[legend]
Collaboration diagram for nsIConverterInputStream:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void init (in nsIInputStream aStream, in string aCharset, in long aBufferSize, in PRUnichar aReplacementChar)
 Initialize this stream.
unsigned long read ([array, size_is(aCount)] in PRUnichar aBuf, in unsigned long aCount)
 Reads into a caller-provided character array.
unsigned long readSegments (in nsWriteUnicharSegmentFun aWriter, in voidPtr aClosure, in unsigned long aCount)
 Low-level read method that has access to the stream's underlying buffer.
unsigned long readString (in unsigned long aCount, out AString aString)
 Read into a string object.
void close ()
 Close the stream and free associated resources.

Public Attributes

const PRUnichar DEFAULT_REPLACEMENT_CHARACTER = 0xFFFD
 Default replacement char value, U+FFFD REPLACEMENT CHARACTER.

Detailed Description

A unichar input stream that wraps an input stream.

This allows reading unicode strings from a stream, automatically converting the bytes from a selected character encoding.

Definition at line 48 of file nsIConverterInputStream.idl.


Member Function Documentation

Close the stream and free associated resources.

This also closes the underlying stream, if any.

void nsIConverterInputStream::init ( in nsIInputStream  aStream,
in string  aCharset,
in long  aBufferSize,
in PRUnichar  aReplacementChar 
)

Initialize this stream.

Parameters:
aStreamThe underlying stream to read from.
aCharsetThe character encoding to use for converting the bytes of the stream. A null charset will be interpreted as UTF-8.
aBufferSizeHow many bytes to buffer.
aReplacementCharThe character to replace unknown byte sequences in the stream with. The standard replacement character is U+FFFD. A value of 0x0000 will cause an exception to be thrown if unknown byte sequences are encountered in the stream.
unsigned long nsIUnicharInputStream::read ( [array, size_is(aCount)] in PRUnichar  aBuf,
in unsigned long  aCount 
) [inherited]

Reads into a caller-provided character array.

Returns:
The number of characters that were successfully read. May be less than aCount, even if there is more data in the input stream. A return value of 0 means EOF.
Note:
To read more than 2^32 characters, call this method multiple times.
unsigned long nsIUnicharInputStream::readSegments ( in nsWriteUnicharSegmentFun  aWriter,
in voidPtr  aClosure,
in unsigned long  aCount 
) [inherited]

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 characters to consume.

Parameters:
aWriterthe "consumer" of the data to be read
aClosureopaque parameter passed to writer
aCountthe maximum number of characters to be read
Returns:
number of characters read (may be less than aCount)
0 if reached end of file (or if aWriter refused to consume data)
Exceptions:
NS_BASE_STREAM_WOULD_BLOCKif reading from the input stream would block the calling thread (non-blocking mode only)
<other-error>on failure

NOTE: this function may be unimplemented if a stream has no underlying buffer

unsigned long nsIUnicharInputStream::readString ( in unsigned long  aCount,
out AString  aString 
) [inherited]

Read into a string object.

Parameters:
aCountThe number of characters that should be read
Returns:
The number of characters that were read.

Member Data Documentation

Default replacement char value, U+FFFD REPLACEMENT CHARACTER.

Definition at line 52 of file nsIConverterInputStream.idl.


The documentation for this interface was generated from the following file: