30 lines
667 B
C++
30 lines
667 B
C++
#pragma once
|
|
|
|
#include <chrono>
|
|
#include <cstdint>
|
|
#include <ostream>
|
|
|
|
class ProgressBar {
|
|
public:
|
|
ProgressBar(uint64_t files, uint64_t bytes);
|
|
|
|
void update(uint64_t addFiles, uint64_t newBytes);
|
|
|
|
std::chrono::duration<uint64_t, std::milli> getDuration() const;
|
|
|
|
private:
|
|
static const uint_fast8_t BARLENGTH;
|
|
|
|
uint64_t maxFiles;
|
|
uint64_t maxBytes;
|
|
|
|
uint64_t currentFiles = 0;
|
|
uint64_t currentBytes = 0;
|
|
|
|
std::chrono::time_point<std::chrono::high_resolution_clock> start = std::chrono::high_resolution_clock::now();
|
|
|
|
friend std::ostream& operator<<(std::ostream& str, const ProgressBar&);
|
|
};
|
|
|
|
std::ostream& operator<<(std::ostream& str, const ProgressBar&);
|