michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsIInputStream.idl" michael@0: #include "nsIOutputStream.idl" michael@0: michael@0: /** michael@0: * An input stream that reads ahead and keeps a buffer coming from another input michael@0: * stream so that fewer accesses to the underlying stream are necessary. michael@0: */ michael@0: [scriptable, uuid(616f5b48-da09-11d3-8cda-0060b0fc14a3)] michael@0: interface nsIBufferedInputStream : nsIInputStream michael@0: { michael@0: /** michael@0: * @param fillFromStream - add buffering to this stream michael@0: * @param bufferSize - specifies the maximum buffer size michael@0: */ michael@0: void init(in nsIInputStream fillFromStream, michael@0: in unsigned long bufferSize); michael@0: }; michael@0: michael@0: /** michael@0: * An output stream that stores up data to write out to another output stream michael@0: * and does the entire write only when the buffer is full, so that fewer writes michael@0: * to the underlying output stream are necessary. michael@0: */ michael@0: [scriptable, uuid(6476378a-da09-11d3-8cda-0060b0fc14a3)] michael@0: interface nsIBufferedOutputStream : nsIOutputStream michael@0: { michael@0: /** michael@0: * @param sinkToStream - add buffering to this stream michael@0: * @param bufferSize - specifies the maximum buffer size michael@0: */ michael@0: void init(in nsIOutputStream sinkToStream, michael@0: in unsigned long bufferSize); michael@0: };