nsIStreamConverterService

The nsIStreamConverterService is a higher level stream converter factory
responsible for locating and creating stream converters
(nsIStreamConverter).

This service retrieves an interface that can convert data from a particular
MIME type, to a particular MIME type. It is responsible for any intermediary
conversion required in order to get from X to Z, assuming direct conversion
is not possible.

@author Jud Valeski
@see nsIStreamConverter

Methods

canConvert(aFromType, aToType)

Tests whether conversion between the two specified types is possible.
This is cheaper than calling convert()/asyncConvertData(); it is not
necessary to call this function before calling one of those, though.

convert(aFromStream, aFromType, aToType, aContext)

SYNCHRONOUS VERSION
Converts a stream of one type, to a stream of another type.

Use this method when you have a stream you want to convert.

Parameters

aFromStream The stream representing the original/raw data.
aFromType The MIME type of aFromStream.
aToType The MIME type of the returned stream.
aContext Either an opaque context, or a converter specific context (implementation specific).

Returns

The converted stream. NOTE: The returned stream may not already be converted. An efficient stream converter implementation will convert data on demand rather than buffering the converted data until it is used.

asyncConvertData(aFromType, aToType, aListener, aContext)

ASYNCHRONOUS VERSION
Retrieves a nsIStreamListener that receives the original/raw data via its
nsIStreamListener::OnDataAvailable() callback, then converts and pushes
the data to aListener.

Use this method when you want to proxy (and convert) nsIStreamListener
callbacks asynchronously.

Parameters

aFromType The MIME type of the original/raw data.
aToType The MIME type of the converted data.
aListener The listener that receives the converted data.
aCtxt Either an opaque context, or a converter specific context (implementation specific).

Returns

A nsIStreamListener that receives data via its OnDataAvailable() method.