add Progress
and ProgressReader
types
#10
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit adds two new types for measuring
progress of I/O operations.
A
Progress
represents the status of an I/Ooperation. It contains the number of bytes
read since the last progress reporting, the
number of bytes processed in total so far and
a potential error.
The
ProgressReader
wraps anio.Reader
andsends progress updates to its
Update
callback.By default, it calls the
Update
callback afterevery completed read. However, users can specify:
UpdateAfter
size causing theProgressReader
to invoke the callback once it has read at leastUpdateAfter
bytes since the last update.UpdateEvery
duration causing theProgressReader
to invoke the callback only if no update has happened for at leastUpdateEvery
time period.