xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Console/HashCon.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // HashCon.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_HASH_CON_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_HASH_CON_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../Common/HashCalc.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker #include "UpdateCallbackConsole.h"
9*f6dc9357SAndroid Build Coastguard Worker 
10*f6dc9357SAndroid Build Coastguard Worker class CHashCallbackConsole Z7_final:
11*f6dc9357SAndroid Build Coastguard Worker     public IHashCallbackUI,
12*f6dc9357SAndroid Build Coastguard Worker     public CCallbackConsoleBase
13*f6dc9357SAndroid Build Coastguard Worker {
14*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_IMP(IDirItemsCallback)
15*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACE_IMP(IHashCallbackUI)
16*f6dc9357SAndroid Build Coastguard Worker 
17*f6dc9357SAndroid Build Coastguard Worker   UString _fileName;
18*f6dc9357SAndroid Build Coastguard Worker   AString _s;
19*f6dc9357SAndroid Build Coastguard Worker 
AddSpace()20*f6dc9357SAndroid Build Coastguard Worker   void AddSpace()
21*f6dc9357SAndroid Build Coastguard Worker   {
22*f6dc9357SAndroid Build Coastguard Worker     _s.Add_Space_if_NotEmpty();
23*f6dc9357SAndroid Build Coastguard Worker   }
24*f6dc9357SAndroid Build Coastguard Worker 
AddSpacesBeforeName()25*f6dc9357SAndroid Build Coastguard Worker   void AddSpacesBeforeName()
26*f6dc9357SAndroid Build Coastguard Worker   {
27*f6dc9357SAndroid Build Coastguard Worker     if (!_s.IsEmpty())
28*f6dc9357SAndroid Build Coastguard Worker     {
29*f6dc9357SAndroid Build Coastguard Worker       _s.Add_Space();
30*f6dc9357SAndroid Build Coastguard Worker       _s.Add_Space();
31*f6dc9357SAndroid Build Coastguard Worker     }
32*f6dc9357SAndroid Build Coastguard Worker   }
33*f6dc9357SAndroid Build Coastguard Worker 
34*f6dc9357SAndroid Build Coastguard Worker   void PrintSeparatorLine(const CObjectVector<CHasherState> &hashers);
35*f6dc9357SAndroid Build Coastguard Worker   void PrintResultLine(UInt64 fileSize,
36*f6dc9357SAndroid Build Coastguard Worker       const CObjectVector<CHasherState> &hashers, unsigned digestIndex, bool showHash, const AString &path);
37*f6dc9357SAndroid Build Coastguard Worker   void PrintProperty(const char *name, UInt64 value);
38*f6dc9357SAndroid Build Coastguard Worker 
39*f6dc9357SAndroid Build Coastguard Worker public:
40*f6dc9357SAndroid Build Coastguard Worker   bool PrintNameInPercents;
41*f6dc9357SAndroid Build Coastguard Worker   bool PrintHeaders;
42*f6dc9357SAndroid Build Coastguard Worker   // bool PrintSize;
43*f6dc9357SAndroid Build Coastguard Worker   // bool PrintNewLine; // set it too (false), if you need only hash for single file without LF char.
44*f6dc9357SAndroid Build Coastguard Worker   AString PrintFields;
45*f6dc9357SAndroid Build Coastguard Worker 
46*f6dc9357SAndroid Build Coastguard Worker   AString GetFields() const;
47*f6dc9357SAndroid Build Coastguard Worker 
CHashCallbackConsole()48*f6dc9357SAndroid Build Coastguard Worker   CHashCallbackConsole():
49*f6dc9357SAndroid Build Coastguard Worker       PrintNameInPercents(true),
50*f6dc9357SAndroid Build Coastguard Worker       PrintHeaders(false)
51*f6dc9357SAndroid Build Coastguard Worker       // , PrintSize(true),
52*f6dc9357SAndroid Build Coastguard Worker       // , PrintNewLine(true)
53*f6dc9357SAndroid Build Coastguard Worker     {}
54*f6dc9357SAndroid Build Coastguard Worker };
55*f6dc9357SAndroid Build Coastguard Worker 
56*f6dc9357SAndroid Build Coastguard Worker void PrintHashStat(CStdOutStream &so, const CHashBundle &hb);
57*f6dc9357SAndroid Build Coastguard Worker 
58*f6dc9357SAndroid Build Coastguard Worker #endif
59