diff options
Diffstat (limited to '3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.h')
-rw-r--r-- | 3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.h | 70 |
1 files changed, 51 insertions, 19 deletions
diff --git a/3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.h b/3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.h index d970cc4b94f..95290b37e9c 100644 --- a/3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.h +++ b/3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.h @@ -3,28 +3,60 @@ #ifndef __PERCENT_PRINTER_H #define __PERCENT_PRINTER_H -#include "Common/StdOutStream.h" +#include "../../../Common/StdOutStream.h" -class CPercentPrinter +struct CPercentPrinterState { - UInt64 m_MinStepSize; - UInt64 m_PrevValue; - UInt64 m_CurValue; - UInt64 m_Total; - unsigned m_NumExtraChars; + 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 *OutStream; - - CPercentPrinter(UInt64 minStepSize = 1): m_MinStepSize(minStepSize), - m_PrevValue(0), m_CurValue(0), m_Total((UInt64)(Int64)-1), m_NumExtraChars(0) {} - void SetTotal(UInt64 total) { m_Total = total; m_PrevValue = 0; } - void SetRatio(UInt64 doneValue) { m_CurValue = doneValue; } - void PrintString(const char *s); - void PrintString(const wchar_t *s); - void PrintNewLine(); - void ClosePrint(); - void RePrintRatio(); - void PrintRatio(); + 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 |