1 // PercentPrinter.h 2 3 #ifndef __PERCENT_PRINTER_H 4 #define __PERCENT_PRINTER_H 5 6 #include "../../../Common/StdOutStream.h" 7 8 class CPercentPrinter 9 { 10 UInt64 m_MinStepSize; 11 UInt64 m_PrevValue; 12 UInt64 m_CurValue; 13 UInt64 m_Total; 14 unsigned m_NumExtraChars; 15 public: 16 CStdOutStream *OutStream; 17 m_MinStepSize(minStepSize)18 CPercentPrinter(UInt64 minStepSize = 1): m_MinStepSize(minStepSize), 19 m_PrevValue(0), m_CurValue(0), m_Total((UInt64)(Int64)-1), m_NumExtraChars(0) {} SetTotal(UInt64 total)20 void SetTotal(UInt64 total) { m_Total = total; m_PrevValue = 0; } SetRatio(UInt64 doneValue)21 void SetRatio(UInt64 doneValue) { m_CurValue = doneValue; } 22 void PrintString(const char *s); 23 void PrintString(const wchar_t *s); 24 void PrintNewLine(); 25 void ClosePrint(); 26 void RePrintRatio(); 27 void PrintRatio(); 28 }; 29 30 #endif 31