Mercurial > vba-linux
view src/win32/7zip/7z/CPP/7zip/Compress/LzmaDecoder.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
line wrap: on
line source
1 // LzmaDecoder.h3 #ifndef __LZMA_DECODER_H4 #define __LZMA_DECODER_H6 extern "C"7 {8 #include "../../../C/LzmaDec.h"9 }11 #include "../../Common/MyCom.h"12 #include "../ICoder.h"14 namespace NCompress {15 namespace NLzma {17 class CDecoder:18 public ICompressCoder,19 public ICompressSetDecoderProperties2,20 public ICompressGetInStreamProcessedSize,21 #ifndef NO_READ_FROM_CODER22 public ICompressSetInStream,23 public ICompressSetOutStreamSize,24 public ISequentialInStream,25 #endif26 public CMyUnknownImp27 {28 CMyComPtr<ISequentialInStream> _inStream;29 Byte *_inBuf;30 UInt32 _inPos;31 UInt32 _inSize;32 CLzmaDec _state;33 bool _outSizeDefined;34 UInt64 _outSize;35 UInt64 _inSizeProcessed;36 UInt64 _outSizeProcessed;37 public:39 #ifndef NO_READ_FROM_CODER40 MY_UNKNOWN_IMP5(41 ICompressSetDecoderProperties2,42 ICompressGetInStreamProcessedSize,43 ICompressSetInStream,44 ICompressSetOutStreamSize,45 ISequentialInStream)46 #else47 MY_UNKNOWN_IMP2(48 ICompressSetDecoderProperties2,49 ICompressGetInStreamProcessedSize)50 #endif52 STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,53 const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);54 STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);55 STDMETHOD(GetInStreamProcessedSize)(UInt64 *value);56 STDMETHOD(SetInStream)(ISequentialInStream *inStream);57 STDMETHOD(ReleaseInStream)();58 STDMETHOD(SetOutStreamSize)(const UInt64 *outSize);60 #ifndef NO_READ_FROM_CODER61 STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);62 #endif64 bool FinishStream;66 CDecoder();67 virtual ~CDecoder();69 };71 }}73 #endif