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