// PercentPrinter.h | |
#ifndef __PERCENT_PRINTER_H | |
#define __PERCENT_PRINTER_H | |
#include "../../../Common/StdOutStream.h" | |
struct CPercentPrinterState | |
{ | |
UInt64 Completed; | |
UInt64 Total; | |
UInt64 Files; | |
AString Command; | |
UString FileName; | |
void ClearCurState(); | |
CPercentPrinterState(): | |
Completed(0), | |
Total((UInt64)(Int64)-1), | |
Files(0) | |
{} | |
}; | |
class CPercentPrinter: public CPercentPrinterState | |
{ | |
UInt32 _tickStep; | |
DWORD _prevTick; | |
AString _s; | |
AString _printedString; | |
AString _temp; | |
UString _tempU; | |
CPercentPrinterState _printedState; | |
AString _printedPercents; | |
void GetPercents(); | |
public: | |
CStdOutStream *_so; | |
bool NeedFlush; | |
unsigned MaxLen; | |
CPercentPrinter(UInt32 tickStep = 200): | |
_tickStep(tickStep), | |
_prevTick(0), | |
NeedFlush(true), | |
MaxLen(80 - 1) | |
{} | |
~CPercentPrinter(); | |
void ClosePrint(bool needFlush); | |
void Print(); | |
}; | |
#endif |