public final class ProgressReporter extends Object
ProgressReporter
offers a convenient way to add progress tracking to a given Flux.Constructor and Description |
---|
ProgressReporter() |
Modifier and Type | Method and Description |
---|---|
static Flux<ByteBuffer> |
addParallelProgressReporting(Flux<ByteBuffer> data,
ProgressReceiver progressReceiver,
Lock lock,
AtomicLong totalProgress)
Adds parallel progress reporting functionality to the given
Flux . |
static Flux<ByteBuffer> |
addProgressReporting(Flux<ByteBuffer> data,
ProgressReceiver progressReceiver)
Adds progress reporting functionality to the given
Flux . |
public static Flux<ByteBuffer> addProgressReporting(Flux<ByteBuffer> data, ProgressReceiver progressReceiver)
Flux
. Each subscription (and therefore each retry)
will rewind the progress reported so as not to over-report. The data reported will be the total amount of data
emitted so far, or the "current position" of the Flux.data
- The data whose transfer progress is to be tracked.progressReceiver
- ProgressReceiver
Flux
that emits the same data as the source but calls a callback to report the total amount of
data emitted so far.public static Flux<ByteBuffer> addParallelProgressReporting(Flux<ByteBuffer> data, ProgressReceiver progressReceiver, Lock lock, AtomicLong totalProgress)
Flux
. Each subscription (and therefore each
retry) will rewind the progress reported so as not to over-report. The data reported will be the total amount
of data emitted so far, or the "current position" of the Flux in parallel.data
- The data whose transfer progress is to be tracked.progressReceiver
- ProgressReceiver
lock
- This lock will be instantiated by the operation initiating the whole transfer to coordinate each
ProgressReporterImpl.totalProgress
- We need an AtomicLong to be able to update the value referenced. Because we are already
synchronizing with the lock, we don't incur any additional performance hit here by the synchronization.Flux
that emits the same data as the source but calls a callback to report the total amount of
data emitted so far.Copyright © 2019 Microsoft Corporation. All rights reserved.