File NPProgressDisplay.h
File List > core > NPProgressDisplay.h
Go to the documentation of this file
#ifndef NPProgressDisplay_h
#define NPProgressDisplay_h 1
#include <chrono>
#include <iomanip>
#include <iostream>
#include "NPTerminalColor.h"
namespace nptool {
class ProgressDisplay {
public:
ProgressDisplay(long long event_to_process, long long size_to_read,
std::chrono::milliseconds interval = std::chrono::milliseconds(500));
~ProgressDisplay(){};
private:
long long m_event_processed;
long long m_event_to_process;
long long m_size_read;
long long m_size_to_read;
std::chrono::milliseconds m_interval; // interval of time to redisplay progress
bool m_odd_even;
std::chrono::time_point<std::chrono::system_clock> m_begin;
std::string m_line; // buffer line to print
public:
void MakeLine(bool force = false);
void AttemptDisplay(long long event_processed = -1, long long size_read = -1, bool force = false);
void ForceDisplay(long long event_processed = -1, long long size_read = -1);
};
} // namespace nptool
#endif