1*f6dc9357SAndroid Build Coastguard Worker // 7zDecode.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_7Z_DECODE_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_7Z_DECODE_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "../Common/CoderMixer2.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker #include "7zIn.h" 9*f6dc9357SAndroid Build Coastguard Worker 10*f6dc9357SAndroid Build Coastguard Worker namespace NArchive { 11*f6dc9357SAndroid Build Coastguard Worker namespace N7z { 12*f6dc9357SAndroid Build Coastguard Worker 13*f6dc9357SAndroid Build Coastguard Worker struct CBindInfoEx: public NCoderMixer2::CBindInfo 14*f6dc9357SAndroid Build Coastguard Worker { 15*f6dc9357SAndroid Build Coastguard Worker CRecordVector<CMethodId> CoderMethodIDs; 16*f6dc9357SAndroid Build Coastguard Worker ClearCBindInfoEx17*f6dc9357SAndroid Build Coastguard Worker void Clear() 18*f6dc9357SAndroid Build Coastguard Worker { 19*f6dc9357SAndroid Build Coastguard Worker CBindInfo::Clear(); 20*f6dc9357SAndroid Build Coastguard Worker CoderMethodIDs.Clear(); 21*f6dc9357SAndroid Build Coastguard Worker } 22*f6dc9357SAndroid Build Coastguard Worker }; 23*f6dc9357SAndroid Build Coastguard Worker 24*f6dc9357SAndroid Build Coastguard Worker class CDecoder 25*f6dc9357SAndroid Build Coastguard Worker { 26*f6dc9357SAndroid Build Coastguard Worker bool _bindInfoPrev_Defined; 27*f6dc9357SAndroid Build Coastguard Worker #ifdef USE_MIXER_ST 28*f6dc9357SAndroid Build Coastguard Worker #ifdef USE_MIXER_MT 29*f6dc9357SAndroid Build Coastguard Worker bool _useMixerMT; 30*f6dc9357SAndroid Build Coastguard Worker #endif 31*f6dc9357SAndroid Build Coastguard Worker #endif 32*f6dc9357SAndroid Build Coastguard Worker CBindInfoEx _bindInfoPrev; 33*f6dc9357SAndroid Build Coastguard Worker 34*f6dc9357SAndroid Build Coastguard Worker #ifdef USE_MIXER_ST 35*f6dc9357SAndroid Build Coastguard Worker NCoderMixer2::CMixerST *_mixerST; 36*f6dc9357SAndroid Build Coastguard Worker #endif 37*f6dc9357SAndroid Build Coastguard Worker 38*f6dc9357SAndroid Build Coastguard Worker #ifdef USE_MIXER_MT 39*f6dc9357SAndroid Build Coastguard Worker NCoderMixer2::CMixerMT *_mixerMT; 40*f6dc9357SAndroid Build Coastguard Worker #endif 41*f6dc9357SAndroid Build Coastguard Worker 42*f6dc9357SAndroid Build Coastguard Worker NCoderMixer2::CMixer *_mixer; 43*f6dc9357SAndroid Build Coastguard Worker CMyComPtr<IUnknown> _mixerRef; 44*f6dc9357SAndroid Build Coastguard Worker 45*f6dc9357SAndroid Build Coastguard Worker public: 46*f6dc9357SAndroid Build Coastguard Worker 47*f6dc9357SAndroid Build Coastguard Worker CDecoder(bool useMixerMT); 48*f6dc9357SAndroid Build Coastguard Worker 49*f6dc9357SAndroid Build Coastguard Worker HRESULT Decode( 50*f6dc9357SAndroid Build Coastguard Worker DECL_EXTERNAL_CODECS_LOC_VARS 51*f6dc9357SAndroid Build Coastguard Worker IInStream *inStream, 52*f6dc9357SAndroid Build Coastguard Worker UInt64 startPos, 53*f6dc9357SAndroid Build Coastguard Worker const CFolders &folders, unsigned folderIndex, 54*f6dc9357SAndroid Build Coastguard Worker const UInt64 *unpackSize // if (!unpackSize), then full folder is required 55*f6dc9357SAndroid Build Coastguard Worker // if (unpackSize), then only *unpackSize bytes from folder are required 56*f6dc9357SAndroid Build Coastguard Worker 57*f6dc9357SAndroid Build Coastguard Worker , ISequentialOutStream *outStream 58*f6dc9357SAndroid Build Coastguard Worker , ICompressProgressInfo *compressProgress 59*f6dc9357SAndroid Build Coastguard Worker 60*f6dc9357SAndroid Build Coastguard Worker , ISequentialInStream **inStreamMainRes 61*f6dc9357SAndroid Build Coastguard Worker , bool &dataAfterEnd_Error 62*f6dc9357SAndroid Build Coastguard Worker 63*f6dc9357SAndroid Build Coastguard Worker Z7_7Z_DECODER_CRYPRO_VARS_DECL 64*f6dc9357SAndroid Build Coastguard Worker 65*f6dc9357SAndroid Build Coastguard Worker #if !defined(Z7_ST) 66*f6dc9357SAndroid Build Coastguard Worker , bool mtMode, UInt32 numThreads, UInt64 memUsage 67*f6dc9357SAndroid Build Coastguard Worker #endif 68*f6dc9357SAndroid Build Coastguard Worker ); 69*f6dc9357SAndroid Build Coastguard Worker }; 70*f6dc9357SAndroid Build Coastguard Worker 71*f6dc9357SAndroid Build Coastguard Worker }} 72*f6dc9357SAndroid Build Coastguard Worker 73*f6dc9357SAndroid Build Coastguard Worker #endif 74