Mercurial > vba-linux
annotate src/win32/7zip/7z/CPP/7zip/Archive/7z/7zDecode.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
rev | line source |
---|---|
rlm@1 | 1 // 7zDecode.h |
rlm@1 | 2 |
rlm@1 | 3 #ifndef __7Z_DECODE_H |
rlm@1 | 4 #define __7Z_DECODE_H |
rlm@1 | 5 |
rlm@1 | 6 #include "../../IStream.h" |
rlm@1 | 7 #include "../../IPassword.h" |
rlm@1 | 8 |
rlm@1 | 9 #include "../Common/CoderMixer2.h" |
rlm@1 | 10 #include "../Common/CoderMixer2MT.h" |
rlm@1 | 11 #ifdef _ST_MODE |
rlm@1 | 12 #include "../Common/CoderMixer2ST.h" |
rlm@1 | 13 #endif |
rlm@1 | 14 |
rlm@1 | 15 #include "../../Common/CreateCoder.h" |
rlm@1 | 16 |
rlm@1 | 17 #include "7zItem.h" |
rlm@1 | 18 |
rlm@1 | 19 namespace NArchive { |
rlm@1 | 20 namespace N7z { |
rlm@1 | 21 |
rlm@1 | 22 struct CBindInfoEx: public NCoderMixer::CBindInfo |
rlm@1 | 23 { |
rlm@1 | 24 CRecordVector<CMethodId> CoderMethodIDs; |
rlm@1 | 25 void Clear() |
rlm@1 | 26 { |
rlm@1 | 27 CBindInfo::Clear(); |
rlm@1 | 28 CoderMethodIDs.Clear(); |
rlm@1 | 29 } |
rlm@1 | 30 }; |
rlm@1 | 31 |
rlm@1 | 32 class CDecoder |
rlm@1 | 33 { |
rlm@1 | 34 bool _bindInfoExPrevIsDefined; |
rlm@1 | 35 CBindInfoEx _bindInfoExPrev; |
rlm@1 | 36 |
rlm@1 | 37 bool _multiThread; |
rlm@1 | 38 #ifdef _ST_MODE |
rlm@1 | 39 NCoderMixer::CCoderMixer2ST *_mixerCoderSTSpec; |
rlm@1 | 40 #endif |
rlm@1 | 41 NCoderMixer::CCoderMixer2MT *_mixerCoderMTSpec; |
rlm@1 | 42 NCoderMixer::CCoderMixer2 *_mixerCoderCommon; |
rlm@1 | 43 |
rlm@1 | 44 CMyComPtr<ICompressCoder2> _mixerCoder; |
rlm@1 | 45 CObjectVector<CMyComPtr<IUnknown> > _decoders; |
rlm@1 | 46 // CObjectVector<CMyComPtr<ICompressCoder2> > _decoders2; |
rlm@1 | 47 public: |
rlm@1 | 48 CDecoder(bool multiThread); |
rlm@1 | 49 HRESULT Decode( |
rlm@1 | 50 DECL_EXTERNAL_CODECS_LOC_VARS |
rlm@1 | 51 IInStream *inStream, |
rlm@1 | 52 UInt64 startPos, |
rlm@1 | 53 const UInt64 *packSizes, |
rlm@1 | 54 const CFolder &folder, |
rlm@1 | 55 ISequentialOutStream *outStream, |
rlm@1 | 56 ICompressProgressInfo *compressProgress |
rlm@1 | 57 #ifndef _NO_CRYPTO |
rlm@1 | 58 , ICryptoGetTextPassword *getTextPasswordSpec, bool &passwordIsDefined |
rlm@1 | 59 #endif |
rlm@1 | 60 #ifdef COMPRESS_MT |
rlm@1 | 61 , bool mtMode, UInt32 numThreads |
rlm@1 | 62 #endif |
rlm@1 | 63 ); |
rlm@1 | 64 }; |
rlm@1 | 65 |
rlm@1 | 66 }} |
rlm@1 | 67 |
rlm@1 | 68 #endif |