Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
michael@0 | 1 | // 7zDecode.h |
michael@0 | 2 | |
michael@0 | 3 | #ifndef __7Z_DECODE_H |
michael@0 | 4 | #define __7Z_DECODE_H |
michael@0 | 5 | |
michael@0 | 6 | #include "../../IStream.h" |
michael@0 | 7 | #include "../../IPassword.h" |
michael@0 | 8 | |
michael@0 | 9 | #include "../Common/CoderMixer2.h" |
michael@0 | 10 | #include "../Common/CoderMixer2MT.h" |
michael@0 | 11 | #ifdef _ST_MODE |
michael@0 | 12 | #include "../Common/CoderMixer2ST.h" |
michael@0 | 13 | #endif |
michael@0 | 14 | #ifndef EXCLUDE_COM |
michael@0 | 15 | #include "../Common/CoderLoader.h" |
michael@0 | 16 | #endif |
michael@0 | 17 | |
michael@0 | 18 | #include "7zItem.h" |
michael@0 | 19 | |
michael@0 | 20 | namespace NArchive { |
michael@0 | 21 | namespace N7z { |
michael@0 | 22 | |
michael@0 | 23 | struct CBindInfoEx: public NCoderMixer2::CBindInfo |
michael@0 | 24 | { |
michael@0 | 25 | CRecordVector<CMethodID> CoderMethodIDs; |
michael@0 | 26 | void Clear() |
michael@0 | 27 | { |
michael@0 | 28 | CBindInfo::Clear(); |
michael@0 | 29 | CoderMethodIDs.Clear(); |
michael@0 | 30 | } |
michael@0 | 31 | }; |
michael@0 | 32 | |
michael@0 | 33 | class CDecoder |
michael@0 | 34 | { |
michael@0 | 35 | #ifndef EXCLUDE_COM |
michael@0 | 36 | CCoderLibraries _libraries; |
michael@0 | 37 | #endif |
michael@0 | 38 | |
michael@0 | 39 | bool _bindInfoExPrevIsDefinded; |
michael@0 | 40 | CBindInfoEx _bindInfoExPrev; |
michael@0 | 41 | |
michael@0 | 42 | bool _multiThread; |
michael@0 | 43 | #ifdef _ST_MODE |
michael@0 | 44 | NCoderMixer2::CCoderMixer2ST *_mixerCoderSTSpec; |
michael@0 | 45 | #endif |
michael@0 | 46 | NCoderMixer2::CCoderMixer2MT *_mixerCoderMTSpec; |
michael@0 | 47 | NCoderMixer2::CCoderMixer2 *_mixerCoderCommon; |
michael@0 | 48 | |
michael@0 | 49 | CMyComPtr<ICompressCoder2> _mixerCoder; |
michael@0 | 50 | CObjectVector<CMyComPtr<IUnknown> > _decoders; |
michael@0 | 51 | // CObjectVector<CMyComPtr<ICompressCoder2> > _decoders2; |
michael@0 | 52 | public: |
michael@0 | 53 | CDecoder(bool multiThread); |
michael@0 | 54 | HRESULT Decode(IInStream *inStream, |
michael@0 | 55 | UInt64 startPos, |
michael@0 | 56 | const UInt64 *packSizes, |
michael@0 | 57 | const CFolder &folder, |
michael@0 | 58 | ISequentialOutStream *outStream, |
michael@0 | 59 | ICompressProgressInfo *compressProgress |
michael@0 | 60 | #ifndef _NO_CRYPTO |
michael@0 | 61 | , ICryptoGetTextPassword *getTextPasswordSpec |
michael@0 | 62 | #endif |
michael@0 | 63 | #ifdef COMPRESS_MT |
michael@0 | 64 | , bool mtMode, UInt32 numThreads |
michael@0 | 65 | #endif |
michael@0 | 66 | ); |
michael@0 | 67 | }; |
michael@0 | 68 | |
michael@0 | 69 | }} |
michael@0 | 70 | |
michael@0 | 71 | #endif |