mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-12 14:11:33 -06:00
Initialer Commit
This commit is contained in:
43
CPP/7zip/Archive/Cab/CabBlockInStream.h
Normal file
43
CPP/7zip/Archive/Cab/CabBlockInStream.h
Normal file
@@ -0,0 +1,43 @@
|
||||
// CabBlockInStream.h
|
||||
|
||||
#ifndef __CAB_BLOCK_IN_STREAM_H
|
||||
#define __CAB_BLOCK_IN_STREAM_H
|
||||
|
||||
#include "../../../Common/MyCom.h"
|
||||
#include "../../IStream.h"
|
||||
|
||||
namespace NArchive {
|
||||
namespace NCab {
|
||||
|
||||
class CCabBlockInStream:
|
||||
public ISequentialInStream,
|
||||
public CMyUnknownImp
|
||||
{
|
||||
Byte *_buf;
|
||||
UInt32 _size;
|
||||
UInt32 _pos;
|
||||
|
||||
public:
|
||||
UInt32 ReservedSize; // < 256
|
||||
bool MsZip;
|
||||
|
||||
MY_UNKNOWN_IMP
|
||||
|
||||
CCabBlockInStream(): _buf(0), ReservedSize(0), MsZip(false) {}
|
||||
~CCabBlockInStream();
|
||||
|
||||
bool Create();
|
||||
|
||||
void InitForNewBlock() { _size = 0; _pos = 0; }
|
||||
|
||||
HRESULT PreRead(ISequentialInStream *stream, UInt32 &packSize, UInt32 &unpackSize);
|
||||
|
||||
UInt32 GetPackSizeAvail() const { return _size - _pos; }
|
||||
const Byte *GetData() const { return _buf + _pos; }
|
||||
|
||||
STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user