Linux Mac OSX Windows
 The nsIFastLoadFileControl interface and its subinterfaces are mix-ins for
 classes implementing nsIObjectInputStream and nsIObjectOutputStream, so that
 those stream types can be used with nsIFastLoadService to access and compute
 FastLoad file checksums, update and check FastLoad file dependencies, and
 multiplex documents loaded via non-blocking i/o.

 If an nsIObjectInputStream class doesn't support nsIFastLoadReadControl, or
 an nsIObjectOutputStream class doesn't support nsIFastLoadWriteControl, that
 implementation may still be useful for object serialization, but it can't be
 used to read or write a Mozilla FastLoad file.
[scriptable, uuid(8a1e2c63-af50-4147-af7e-26289dc180dd)]
interface nsIFastLoadFileControl : nsISupports

Attributes

 Get and set the recorded checksum value from the FastLoad file header.
attribute PRUint32 checksum

Methods


        
void endMuxedDocument(in nsISupports aURI)
 Return true if aURISpec identifies a muxed document in the FastLoad
 file, false otherwise.
boolean hasMuxedDocument(in string aURISpec)

        
nsISupports selectMuxedDocument(in nsISupports aURI)
 Multiplexed document control methods.  A FastLoad file may contain
 multiple interleaved documents identified by a URI specifier string,
 and indexed for fast multiplexor select by an opaque URI object key.
 You StartMuxedDocument when initiating a document load, then Select
 before every batch of calls to (de)serialize document data, and End
 when the load completes.

 Document multiplexing is necessary to support incremental FastLoad
 development in a non-blocking i/o architecture such as Mozilla, where
 some (but not all, at first, or for a while during development) of the
 results of parsing and compiling various inputs can be multiplexed to
 or from a FastLoad file.

 Note: Select returns the previously selected URI object in case the
 caller is synchronously selecting and writing data to the FastLoad
 file, so the caller can reselect the previous URI and return to code
 the continues to write FastLoad data for the previous URI, unaware of
 the nested select/write/reselect.
void startMuxedDocument(in nsISupports aURI, in string aURISpec)