diff options
Diffstat (limited to '3rdparty/lzma/CPP/7zip/Archive/7z/7zDecode.h')
-rw-r--r-- | 3rdparty/lzma/CPP/7zip/Archive/7z/7zDecode.h | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/3rdparty/lzma/CPP/7zip/Archive/7z/7zDecode.h b/3rdparty/lzma/CPP/7zip/Archive/7z/7zDecode.h index d8a424a36c9..5b729f6c86d 100644 --- a/3rdparty/lzma/CPP/7zip/Archive/7z/7zDecode.h +++ b/3rdparty/lzma/CPP/7zip/Archive/7z/7zDecode.h @@ -3,25 +3,17 @@ #ifndef __7Z_DECODE_H #define __7Z_DECODE_H -#include "../../IStream.h" -#include "../../IPassword.h" - #include "../Common/CoderMixer2.h" -#include "../Common/CoderMixer2MT.h" -#ifdef _ST_MODE -#include "../Common/CoderMixer2ST.h" -#endif - -#include "../../Common/CreateCoder.h" -#include "7zItem.h" +#include "7zIn.h" namespace NArchive { namespace N7z { -struct CBindInfoEx: public NCoderMixer::CBindInfo +struct CBindInfoEx: public NCoderMixer2::CBindInfo { CRecordVector<CMethodId> CoderMethodIDs; + void Clear() { CBindInfo::Clear(); @@ -31,32 +23,40 @@ struct CBindInfoEx: public NCoderMixer::CBindInfo class CDecoder { - bool _bindInfoExPrevIsDefined; - CBindInfoEx _bindInfoExPrev; + bool _bindInfoPrev_Defined; + CBindInfoEx _bindInfoPrev; + + bool _useMixerMT; + + #ifdef USE_MIXER_ST + NCoderMixer2::CMixerST *_mixerST; + #endif - bool _multiThread; - #ifdef _ST_MODE - NCoderMixer::CCoderMixer2ST *_mixerCoderSTSpec; + #ifdef USE_MIXER_MT + NCoderMixer2::CMixerMT *_mixerMT; #endif - NCoderMixer::CCoderMixer2MT *_mixerCoderMTSpec; - NCoderMixer::CCoderMixer2 *_mixerCoderCommon; - CMyComPtr<ICompressCoder2> _mixerCoder; - CObjectVector<CMyComPtr<IUnknown> > _decoders; - // CObjectVector<CMyComPtr<ICompressCoder2> > _decoders2; + NCoderMixer2::CMixer *_mixer; + CMyComPtr<IUnknown> _mixerRef; + public: - CDecoder(bool multiThread); + + CDecoder(bool useMixerMT); + HRESULT Decode( DECL_EXTERNAL_CODECS_LOC_VARS IInStream *inStream, UInt64 startPos, - const UInt64 *packSizes, - const CFolder &folder, - ISequentialOutStream *outStream, - ICompressProgressInfo *compressProgress - #ifndef _NO_CRYPTO - , ICryptoGetTextPassword *getTextPasswordSpec, bool &passwordIsDefined - #endif + const CFolders &folders, unsigned folderIndex, + const UInt64 *unpackSize // if (!unpackSize), then full folder is required + // if (unpackSize), then only *unpackSize bytes from folder are required + + , ISequentialOutStream *outStream + , ICompressProgressInfo *compressProgress + , ISequentialInStream **inStreamMainRes + + _7Z_DECODER_CRYPRO_VARS_DECL + #if !defined(_7ZIP_ST) && !defined(_SFX) , bool mtMode, UInt32 numThreads #endif |