/* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2 . 0 . If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
interface nsIInputStream;
interface nsIOutputStream;
/**
* 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 .
*/
[scriptable, uuid(
44 a200fe-
6 c2b-
4 b41-b4e3-
63 e8c14e7c0d)]
interface nsIStorageStream : nsISupports
{
/**
*
* Initialize the stream , setting up the amount of space that will be
* allocated for the stream ' s backing - store .
*
* @ param segmentSize
* Size of each segment . Must be a power of two .
* @ param maxSize
* Maximum total size of this stream . length will always be less
* than or equal to this value . Passing UINT32_MAX is safe .
*/
void init(in uint32_t segmentSize, in uint32_t maxSize);
/**
* 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 .
*/
nsIOutputStream getOutputStream(in int32_t 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 .
*/
nsIInputStream newInputStream(in int32_t startPosition);
/**
* 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 .
*
* @See #writeInProgress */
attribute uint32_t length;
/**
* True , when output stream has not yet been Close ' ed
*/
readonly attribute boolean writeInProgress;
};
%{C++
// Factory method
nsresult
NS_NewStorageStream(uint32_t segmentSize, uint32_t maxSize, nsIStorageStream **result
);
%}
Messung V0.5 in Prozent C=90 H=98 G=94
¤ Dauer der Verarbeitung: 0.5 Sekunden
¤
*© Formatika GbR, Deutschland