public interface ITransferConsumer : 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) |
DrainAsync | Consumes the data in buffer as determined by its Data, 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 data from the buffer MUST be completely consumed. 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) |