1 // UniqBlocks.h 2 3 #ifndef __UNIQ_BLOCKS_H 4 #define __UNIQ_BLOCKS_H 5 6 #include "../../Common/MyTypes.h" 7 #include "../../Common/MyBuffer.h" 8 #include "../../Common/MyVector.h" 9 10 struct CUniqBlocks 11 { 12 CObjectVector<CByteBuffer> Bufs; 13 CIntVector Sorted; 14 CIntVector BufIndexToSortedIndex; 15 16 int AddUniq(const Byte *data, size_t size); 17 UInt64 GetTotalSizeInBytes() const; 18 void GetReverseMap(); 19 IsOnlyEmptyCUniqBlocks20 bool IsOnlyEmpty() const 21 { 22 if (Bufs.Size() == 0) 23 return true; 24 if (Bufs.Size() > 1) 25 return false; 26 return Bufs[0].Size() == 0; 27 } 28 }; 29 30 #endif 31