1*f6dc9357SAndroid Build Coastguard Worker // CabBlockInStream.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_CAB_BLOCK_IN_STREAM_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_CAB_BLOCK_IN_STREAM_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "../../IStream.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker namespace NArchive { 9*f6dc9357SAndroid Build Coastguard Worker namespace NCab { 10*f6dc9357SAndroid Build Coastguard Worker 11*f6dc9357SAndroid Build Coastguard Worker class CBlockPackData 12*f6dc9357SAndroid Build Coastguard Worker { 13*f6dc9357SAndroid Build Coastguard Worker Byte *_buf; 14*f6dc9357SAndroid Build Coastguard Worker UInt32 _size; 15*f6dc9357SAndroid Build Coastguard Worker public: CBlockPackData()16*f6dc9357SAndroid Build Coastguard Worker CBlockPackData(): _buf(NULL), _size(0) {} 17*f6dc9357SAndroid Build Coastguard Worker ~CBlockPackData() throw(); 18*f6dc9357SAndroid Build Coastguard Worker bool Create() throw(); InitForNewBlock()19*f6dc9357SAndroid Build Coastguard Worker void InitForNewBlock() { _size = 0; } 20*f6dc9357SAndroid Build Coastguard Worker HRESULT Read(ISequentialInStream *stream, Byte ReservedSize, UInt32 &packSize, UInt32 &unpackSize) throw(); GetPackSize()21*f6dc9357SAndroid Build Coastguard Worker UInt32 GetPackSize() const { return _size; } 22*f6dc9357SAndroid Build Coastguard Worker // 32 bytes of overread zone is available after PackSize: GetData()23*f6dc9357SAndroid Build Coastguard Worker const Byte *GetData() const { return _buf; } 24*f6dc9357SAndroid Build Coastguard Worker }; 25*f6dc9357SAndroid Build Coastguard Worker 26*f6dc9357SAndroid Build Coastguard Worker }} 27*f6dc9357SAndroid Build Coastguard Worker 28*f6dc9357SAndroid Build Coastguard Worker #endif 29