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