Interface nsIStreamConverterType

nsIStreamConverter provides an interface to implement when you have code that converts data from one type to another.

Suppose you had code that converted plain text into HTML. You could implement this interface to allow everyone else to use your conversion logic using a standard api.

STREAM CONVERTER USERS

There are currently two ways to use a stream converter:

  • SYNCHRONOUS Stream to Stream You can supply the service with a stream of type X and it will convert it to your desired output type and return a converted (blocking) stream to you.

  • ASYNCHRONOUS nsIStreamListener to nsIStreamListener You can supply data directly to the converter by calling it's nsIStreamListener::OnDataAvailable() method. It will then convert that data from type X to your desired output type and return converted data to you via the nsIStreamListener you passed in by calling its OnDataAvailable() method.

STREAM CONVERTER SUPPLIERS

Registering a stream converter: Stream converter registration is a two step process. First of all the stream converter implementation must register itself with the component manager using a contractid in the format below. Second, the stream converter must add the contractid to the registry.

Stream converter contractid format (the stream converter root key is defined in this file):

@mozilla.org/streamconv;1?from=FROM_MIME_TYPE&to=TO_MIME_TYPE

Author

Jud Valeski

See

nsIStreamConverterService

Hierarchy

Methods

  • Increases the reference count for this interface. The associated instance will not be deleted unless the reference count is returned to zero.

    Returns

    The resulting reference count.

    Returns number

  • Parameters

    • aIID: object
    • Optional aInstancePtr: object

    Returns any

  • A run time mechanism for interface discovery.

    Returns

    NS_OK if the interface is supported by the associated instance, NS_NOINTERFACE if it is not.

    aInstancePtr must not be null.

    Parameters

    • aIID: object

      [in] A requested interface IID

    • aInstancePtr: object

      [out] A pointer to an interface pointer to receive the result.

    Returns void

  • Decreases the reference count for this interface. Generally, if the reference count returns to zero, the associated instance is deleted.

    Returns

    The resulting reference count.

    Returns number

  • ASYNCRONOUS VERSION Converts data arriving via the converter's nsIStreamListener::OnDataAvailable() method from one type to another, pushing the converted data out to the caller via aListener::OnDataAvailable().

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

    Parameters

    • aFromType: string

      The MIME type of the original/raw data.

    • aToType: string

      The MIME type of the converted data.

    • aListener: nsIStreamListener

      The listener who receives the converted data.

    • aCtxt: nsISupports

      Either an opaque context, or a converter specific context (implementation specific).

    Returns void

  • SYNCRONOUS 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.

    Returns

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

    Parameters

    • aFromStream: nsIInputStream

      The stream representing the original/raw data.

    • aFromType: string

      The MIME type of aFromStream.

    • aToType: string

      The MIME type of the returned stream.

    • aCtxt: nsISupports

      Either an opaque context, or a converter specific context (implementation specific).

    Returns nsIInputStream

  • Returns the content type that the stream listener passed to asyncConvertData will see on the channel if the conversion is being done from aFromType to * .

    Throws

    if the converter does not support conversion to * /* or if it doesn't know the type in advance.

    Parameters

    • aFromType: string

      The type of the content prior to conversion.

    • aChannel: nsIChannel

      The channel that we'd like to convert. May be null.

    Returns string

  • Called when the next chunk of data (corresponding to the request) may be read without blocking the calling thread. The onDataAvailable impl must read exactly |aCount| bytes of data before returning.

    Parameters

    • aRequest: nsIRequest

      request corresponding to the source of the data

    • aInputStream: nsIInputStream

      input stream containing the data chunk

    • aOffset: number

      Number of bytes that were sent in previous onDataAvailable calls for this request. In other words, the sum of all previous count parameters.

    • aCount: number

      number of bytes available in the stream

      NOTE: The aInputStream parameter must implement readSegments.

      An exception thrown from onDataAvailable has the side-effect of causing the request to be canceled.

    Returns void

  • Called to signify the beginning of an asynchronous request.

    Parameters

    • aRequest: nsIRequest

      request being observed

      An exception thrown from onStartRequest has the side-effect of causing the request to be canceled.

    Returns void

  • Called to signify the end of an asynchronous request. This call is always preceded by a call to onStartRequest.

    Parameters

    • aRequest: nsIRequest

      request being observed

    • aStatusCode: number

      reason for stopping (NS_OK if completed successfully)

      An exception thrown from onStopRequest is generally ignored.

    Returns void

Generated using TypeDoc