public interface ITransferProducer : ITransferWorker
MaxConcurrency |
Maximum number of concurrent tasks to use during parallel transfers.
For serial transfers, this property must return 1.
(Inherited from ITransferWorker) |
State |
Managed by TransferDriver. The implementation should initialize this property to null.
The driver injects a valid instance before execution starts. After execution, the instance may be inspected
for errors.
(Inherited from ITransferWorker) |
FillAsync | Fills a single buffer with data from the file as determined by its Memory and Sequence properties. Failure must be signaled by throwing an exception. This method will be invoked concurrently when MaxConcurrency is greater than 1. The driver stops invoking this method after an error has occurred. WARNINGS: The buffer MUST be completely filled with data unless this is the last block of the file. If this rule is not followed, data will be corrupt at the destinations. Do NOT keep a reference to buffer, or any of its members, for later use outside of this method. |
FinalizeAsync | Finalizes the worker by computing the verification hash and disposing of any previously acquired resources. Failure must be signaled by throwing an exception. This method is always invoked, once per transfer. It is invoked regardless of whether the worker encountered an error or not (Exception). IMPORTANT: Resources should be disposed even if cancellation is requested. (Inherited from ITransferWorker) |
InitializeAsync |
Initializes the worker for the next transfer, acquiring any needed resources. Failure must be signaled by throwing an exception.
This method is always invoked, once per transfer.
(Inherited from ITransferWorker) |