xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // OpenCallbackConsole.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_OPEN_CALLBACK_CONSOLE_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_OPEN_CALLBACK_CONSOLE_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/StdOutStream.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker #include "../Common/ArchiveOpenCallback.h"
9*f6dc9357SAndroid Build Coastguard Worker 
10*f6dc9357SAndroid Build Coastguard Worker #include "PercentPrinter.h"
11*f6dc9357SAndroid Build Coastguard Worker 
12*f6dc9357SAndroid Build Coastguard Worker class COpenCallbackConsole: public IOpenCallbackUI
13*f6dc9357SAndroid Build Coastguard Worker {
14*f6dc9357SAndroid Build Coastguard Worker protected:
15*f6dc9357SAndroid Build Coastguard Worker   CPercentPrinter _percent;
16*f6dc9357SAndroid Build Coastguard Worker 
17*f6dc9357SAndroid Build Coastguard Worker   CStdOutStream *_so;
18*f6dc9357SAndroid Build Coastguard Worker   CStdOutStream *_se;
19*f6dc9357SAndroid Build Coastguard Worker 
20*f6dc9357SAndroid Build Coastguard Worker   // UInt64 _totalFiles;
21*f6dc9357SAndroid Build Coastguard Worker   UInt64 _totalBytes;
22*f6dc9357SAndroid Build Coastguard Worker   bool _totalFilesDefined;
23*f6dc9357SAndroid Build Coastguard Worker   // bool _totalBytesDefined;
24*f6dc9357SAndroid Build Coastguard Worker 
NeedPercents()25*f6dc9357SAndroid Build Coastguard Worker   bool NeedPercents() const { return _percent._so && !_percent.DisablePrint; }
26*f6dc9357SAndroid Build Coastguard Worker 
27*f6dc9357SAndroid Build Coastguard Worker public:
28*f6dc9357SAndroid Build Coastguard Worker 
29*f6dc9357SAndroid Build Coastguard Worker   bool MultiArcMode;
30*f6dc9357SAndroid Build Coastguard Worker 
ClosePercents()31*f6dc9357SAndroid Build Coastguard Worker   void ClosePercents()
32*f6dc9357SAndroid Build Coastguard Worker   {
33*f6dc9357SAndroid Build Coastguard Worker     if (NeedPercents())
34*f6dc9357SAndroid Build Coastguard Worker       _percent.ClosePrint(true);
35*f6dc9357SAndroid Build Coastguard Worker   }
36*f6dc9357SAndroid Build Coastguard Worker 
COpenCallbackConsole()37*f6dc9357SAndroid Build Coastguard Worker   COpenCallbackConsole():
38*f6dc9357SAndroid Build Coastguard Worker       _totalBytes(0),
39*f6dc9357SAndroid Build Coastguard Worker       _totalFilesDefined(false),
40*f6dc9357SAndroid Build Coastguard Worker       // _totalBytesDefined(false),
41*f6dc9357SAndroid Build Coastguard Worker       MultiArcMode(false)
42*f6dc9357SAndroid Build Coastguard Worker 
43*f6dc9357SAndroid Build Coastguard Worker       #ifndef Z7_NO_CRYPTO
44*f6dc9357SAndroid Build Coastguard Worker       , PasswordIsDefined(false)
45*f6dc9357SAndroid Build Coastguard Worker       // , PasswordWasAsked(false)
46*f6dc9357SAndroid Build Coastguard Worker       #endif
47*f6dc9357SAndroid Build Coastguard Worker 
48*f6dc9357SAndroid Build Coastguard Worker       {}
49*f6dc9357SAndroid Build Coastguard Worker 
~COpenCallbackConsole()50*f6dc9357SAndroid Build Coastguard Worker   virtual ~COpenCallbackConsole() {}
51*f6dc9357SAndroid Build Coastguard Worker 
Init(CStdOutStream * outStream,CStdOutStream * errorStream,CStdOutStream * percentStream,bool disablePercents)52*f6dc9357SAndroid Build Coastguard Worker   void Init(
53*f6dc9357SAndroid Build Coastguard Worker       CStdOutStream *outStream,
54*f6dc9357SAndroid Build Coastguard Worker       CStdOutStream *errorStream,
55*f6dc9357SAndroid Build Coastguard Worker       CStdOutStream *percentStream,
56*f6dc9357SAndroid Build Coastguard Worker       bool disablePercents)
57*f6dc9357SAndroid Build Coastguard Worker   {
58*f6dc9357SAndroid Build Coastguard Worker     _so = outStream;
59*f6dc9357SAndroid Build Coastguard Worker     _se = errorStream;
60*f6dc9357SAndroid Build Coastguard Worker     _percent._so = percentStream;
61*f6dc9357SAndroid Build Coastguard Worker     _percent.DisablePrint = disablePercents;
62*f6dc9357SAndroid Build Coastguard Worker   }
63*f6dc9357SAndroid Build Coastguard Worker 
64*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_IMP(IOpenCallbackUI)
65*f6dc9357SAndroid Build Coastguard Worker 
66*f6dc9357SAndroid Build Coastguard Worker   #ifndef Z7_NO_CRYPTO
67*f6dc9357SAndroid Build Coastguard Worker   bool PasswordIsDefined;
68*f6dc9357SAndroid Build Coastguard Worker   // bool PasswordWasAsked;
69*f6dc9357SAndroid Build Coastguard Worker   UString Password;
70*f6dc9357SAndroid Build Coastguard Worker   #endif
71*f6dc9357SAndroid Build Coastguard Worker };
72*f6dc9357SAndroid Build Coastguard Worker 
73*f6dc9357SAndroid Build Coastguard Worker #endif
74