1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /* 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 "nsIRequest.idl"
- interface nsIInputStream;
- interface nsIOutputStream;
- interface nsIRequestObserver;
- interface nsIEventTarget;
- // You should prefer nsIAsyncStreamCopier2
- [scriptable, uuid(5a19ca27-e041-4aca-8287-eb248d4c50c0)]
- interface nsIAsyncStreamCopier : nsIRequest
- {
- /**
- * Initialize the stream copier.
- *
- * @param aSource
- * contains the data to be copied.
- * @param aSink
- * specifies the destination for the data.
- * @param aTarget
- * specifies the thread on which the copy will occur. a null value
- * is permitted and will cause the copy to occur on an unspecified
- * background thread.
- * @param aSourceBuffered
- * true if aSource implements ReadSegments.
- * @param aSinkBuffered
- * true if aSink implements WriteSegments.
- * @param aChunkSize
- * specifies how many bytes to read/write at a time. this controls
- * the granularity of the copying. it should match the segment size
- * of the "buffered" streams involved.
- * @param aCloseSource
- * true if aSource should be closed after copying.
- * @param aCloseSink
- * true if aSink should be closed after copying.
- *
- * NOTE: at least one of the streams must be buffered. If you do not know
- * whether your streams are buffered, you should use nsIAsyncStreamCopier2
- * instead.
- */
- void init(in nsIInputStream aSource,
- in nsIOutputStream aSink,
- in nsIEventTarget aTarget,
- in boolean aSourceBuffered,
- in boolean aSinkBuffered,
- in unsigned long aChunkSize,
- in boolean aCloseSource,
- in boolean aCloseSink);
- /**
- * asyncCopy triggers the start of the copy. The observer will be notified
- * when the copy completes.
- *
- * @param aObserver
- * receives notifications.
- * @param aObserverContext
- * passed to observer methods.
- */
- void asyncCopy(in nsIRequestObserver aObserver,
- in nsISupports aObserverContext);
- };
|