The nsIStorageStream interface maintains an internal data buffer that can be filled using a single output stream. One or more independent input streams can be created to read the data from the buffer non-destructively.
This interface is implemented by the following components:
The length attribute indicates the total number of bytes stored in the nsIStorageStream internal buffer, regardless of any consumption by input streams. Assigning to the length field can be used to truncate the buffer data, but can not be used when either the instance's output stream is in use.
readonly PRBool writeInProgress
True, when output stream has not yet been Close'ed
nsIOutputStream getOutputStream ( PRInt32 startPosition )
Get a reference to the one and only output stream for this instance. The zero-based startPosition argument is used is used to set the initial write cursor position. The startPosition cannot be set larger than the current buffer length. Calling this method has the side-effect of truncating the internal buffer to startPosition bytes.
void init ( PRUint32 segmentSize , PRUint32 maxSize , nsIMemory segmentAllocator )
Initialize the stream, setting up the amount of space that will be allocated for the stream's backing-store.
- segmentSize: Size of each segment. Must be a power of two.
- maxSize: Maximum total size of this stream. length will always be less than or equal to this value. Passing PR_UINT32_MAX is safe.
- segmentAllocator: Which allocator to use for the segments. May be null, in which case a default allocator will be used.
nsIInputStream newInputStream ( PRInt32 startPosition )
Create a new input stream to read data (written by the singleton output stream) from the internal buffer. Multiple, independent input streams can be created.
Reference documentation is generated from Mozilla's source.