1baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// 7zDecode.h 2baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 3baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#ifndef __7Z_DECODE_H 4baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define __7Z_DECODE_H 5baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 6baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "../../IStream.h" 7baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "../../IPassword.h" 8baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 9baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "../Common/CoderMixer2.h" 10baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "../Common/CoderMixer2MT.h" 11baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#ifdef _ST_MODE 12baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "../Common/CoderMixer2ST.h" 13baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#endif 14baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 15baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "../../Common/CreateCoder.h" 16baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 17baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "7zItem.h" 18baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 19baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace NArchive { 20baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace N7z { 21baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 22baa3858d3f5d128a5c8466b700098109edcad5f2repo syncstruct CBindInfoEx: public NCoderMixer::CBindInfo 23baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{ 24baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CRecordVector<CMethodId> CoderMethodIDs; 25baa3858d3f5d128a5c8466b700098109edcad5f2repo sync void Clear() 26baa3858d3f5d128a5c8466b700098109edcad5f2repo sync { 27baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CBindInfo::Clear(); 28baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CoderMethodIDs.Clear(); 29baa3858d3f5d128a5c8466b700098109edcad5f2repo sync } 30baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}; 31baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 32baa3858d3f5d128a5c8466b700098109edcad5f2repo syncclass CDecoder 33baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{ 34baa3858d3f5d128a5c8466b700098109edcad5f2repo sync bool _bindInfoExPrevIsDefined; 35baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CBindInfoEx _bindInfoExPrev; 36baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 37baa3858d3f5d128a5c8466b700098109edcad5f2repo sync bool _multiThread; 38baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #ifdef _ST_MODE 39baa3858d3f5d128a5c8466b700098109edcad5f2repo sync NCoderMixer::CCoderMixer2ST *_mixerCoderSTSpec; 40baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #endif 41baa3858d3f5d128a5c8466b700098109edcad5f2repo sync NCoderMixer::CCoderMixer2MT *_mixerCoderMTSpec; 42baa3858d3f5d128a5c8466b700098109edcad5f2repo sync NCoderMixer::CCoderMixer2 *_mixerCoderCommon; 43baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 44baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CMyComPtr<ICompressCoder2> _mixerCoder; 45baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CObjectVector<CMyComPtr<IUnknown> > _decoders; 46baa3858d3f5d128a5c8466b700098109edcad5f2repo sync // CObjectVector<CMyComPtr<ICompressCoder2> > _decoders2; 47baa3858d3f5d128a5c8466b700098109edcad5f2repo syncpublic: 48baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CDecoder(bool multiThread); 49baa3858d3f5d128a5c8466b700098109edcad5f2repo sync HRESULT Decode( 50baa3858d3f5d128a5c8466b700098109edcad5f2repo sync DECL_EXTERNAL_CODECS_LOC_VARS 51baa3858d3f5d128a5c8466b700098109edcad5f2repo sync IInStream *inStream, 52baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UInt64 startPos, 53baa3858d3f5d128a5c8466b700098109edcad5f2repo sync const UInt64 *packSizes, 54baa3858d3f5d128a5c8466b700098109edcad5f2repo sync const CFolder &folder, 55baa3858d3f5d128a5c8466b700098109edcad5f2repo sync ISequentialOutStream *outStream, 56baa3858d3f5d128a5c8466b700098109edcad5f2repo sync ICompressProgressInfo *compressProgress 57baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #ifndef _NO_CRYPTO 58baa3858d3f5d128a5c8466b700098109edcad5f2repo sync , ICryptoGetTextPassword *getTextPasswordSpec, bool &passwordIsDefined 59baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #endif 60baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #if !defined(_7ZIP_ST) && !defined(_SFX) 61baa3858d3f5d128a5c8466b700098109edcad5f2repo sync , bool mtMode, UInt32 numThreads 62baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #endif 63baa3858d3f5d128a5c8466b700098109edcad5f2repo sync ); 64baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}; 65baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 66baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}} 67baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 68baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#endif 69