// UniqBlocks.h #ifndef ZIP7_INC_UNIQ_BLOCKS_H #define ZIP7_INC_UNIQ_BLOCKS_H #include "../../Common/MyBuffer.h" #include "../../Common/MyString.h" struct C_UInt32_UString_Map { CRecordVector Numbers; UStringVector Strings; void Add_UInt32(const UInt32 n) { Numbers.AddToUniqueSorted(n); } int Find(const UInt32 n) { return Numbers.FindInSorted(n); } }; struct CUniqBlocks { CObjectVector Bufs; CUIntVector Sorted; CUIntVector BufIndexToSortedIndex; unsigned AddUniq(const Byte *data, size_t size); UInt64 GetTotalSizeInBytes() const; void GetReverseMap(); bool IsOnlyEmpty() const { return (Bufs.Size() == 0 || (Bufs.Size() == 1 && Bufs[0].Size() == 0)); } }; #endif