-
Write a generic progress bar class. Has the following features: * Has separate progress and target numbers, rather than a single completion fraction, to enable the the next feature. * Optionally generates text reporting the amount of data copied using the progress and target numbers like this: "1.00 MiB of 16.00 MiB copied" * After running for 5 seconds, also add estimated remaining time. (Waits to allow the data copying rate to settle down a little before estimating the remaining time). Looks like this: "1.00 MiB of 16.00 MiB copied (00:01:59) remaining)" The ProgressBar class is not driving the visual progress bar yet. It has just been added into the internal block copy algorithm and generates debug messages showing the progress bar is operating correctly. Debugging looks like this: DEBUG: ProgressBar::start(target=2.0636e+09, text_mode=PROGRESSBAR_TEXT_COPY_BYTES) DEBUG: ProgressBar::update(progress=1.30023e+08) m_fraction=0....
0ca8ed73