1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/other-licenses/7zstub/src/7zip/Archive/7z/7zDecode.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,71 @@ 1.4 +// 7zDecode.h 1.5 + 1.6 +#ifndef __7Z_DECODE_H 1.7 +#define __7Z_DECODE_H 1.8 + 1.9 +#include "../../IStream.h" 1.10 +#include "../../IPassword.h" 1.11 + 1.12 +#include "../Common/CoderMixer2.h" 1.13 +#include "../Common/CoderMixer2MT.h" 1.14 +#ifdef _ST_MODE 1.15 +#include "../Common/CoderMixer2ST.h" 1.16 +#endif 1.17 +#ifndef EXCLUDE_COM 1.18 +#include "../Common/CoderLoader.h" 1.19 +#endif 1.20 + 1.21 +#include "7zItem.h" 1.22 + 1.23 +namespace NArchive { 1.24 +namespace N7z { 1.25 + 1.26 +struct CBindInfoEx: public NCoderMixer2::CBindInfo 1.27 +{ 1.28 + CRecordVector<CMethodID> CoderMethodIDs; 1.29 + void Clear() 1.30 + { 1.31 + CBindInfo::Clear(); 1.32 + CoderMethodIDs.Clear(); 1.33 + } 1.34 +}; 1.35 + 1.36 +class CDecoder 1.37 +{ 1.38 + #ifndef EXCLUDE_COM 1.39 + CCoderLibraries _libraries; 1.40 + #endif 1.41 + 1.42 + bool _bindInfoExPrevIsDefinded; 1.43 + CBindInfoEx _bindInfoExPrev; 1.44 + 1.45 + bool _multiThread; 1.46 + #ifdef _ST_MODE 1.47 + NCoderMixer2::CCoderMixer2ST *_mixerCoderSTSpec; 1.48 + #endif 1.49 + NCoderMixer2::CCoderMixer2MT *_mixerCoderMTSpec; 1.50 + NCoderMixer2::CCoderMixer2 *_mixerCoderCommon; 1.51 + 1.52 + CMyComPtr<ICompressCoder2> _mixerCoder; 1.53 + CObjectVector<CMyComPtr<IUnknown> > _decoders; 1.54 + // CObjectVector<CMyComPtr<ICompressCoder2> > _decoders2; 1.55 +public: 1.56 + CDecoder(bool multiThread); 1.57 + HRESULT Decode(IInStream *inStream, 1.58 + UInt64 startPos, 1.59 + const UInt64 *packSizes, 1.60 + const CFolder &folder, 1.61 + ISequentialOutStream *outStream, 1.62 + ICompressProgressInfo *compressProgress 1.63 + #ifndef _NO_CRYPTO 1.64 + , ICryptoGetTextPassword *getTextPasswordSpec 1.65 + #endif 1.66 + #ifdef COMPRESS_MT 1.67 + , bool mtMode, UInt32 numThreads 1.68 + #endif 1.69 + ); 1.70 +}; 1.71 + 1.72 +}} 1.73 + 1.74 +#endif