123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /* 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;
- [scriptable, uuid(a5b2decf-4ede-4801-8b38-e5fe5db46bf2)]
- interface nsIAsyncStreamCopier2 : nsIRequest
- {
- /**
- * Initialize the stream copier.
- *
- * If neither the source nor the sink are buffered, buffering will
- * be automatically added to the sink.
- *
- *
- * @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 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 (this is generally
- * the desired behavior).
- * @param aCloseSink
- * true if aSink should be closed after copying (this is generally
- * the desired behavior).
- */
- void init(in nsIInputStream aSource,
- in nsIOutputStream aSink,
- in nsIEventTarget aTarget,
- 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);
- };
|