diff options
Diffstat (limited to 'CPP/7zip/Archive/7z/7zDecode.h')
-rw-r--r-- | CPP/7zip/Archive/7z/7zDecode.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/CPP/7zip/Archive/7z/7zDecode.h b/CPP/7zip/Archive/7z/7zDecode.h new file mode 100644 index 0000000..eeb146e --- /dev/null +++ b/CPP/7zip/Archive/7z/7zDecode.h | |||
@@ -0,0 +1,70 @@ | |||
1 | // 7zDecode.h | ||
2 | |||
3 | #ifndef __7Z_DECODE_H | ||
4 | #define __7Z_DECODE_H | ||
5 | |||
6 | #include "../Common/CoderMixer2.h" | ||
7 | |||
8 | #include "7zIn.h" | ||
9 | |||
10 | namespace NArchive { | ||
11 | namespace N7z { | ||
12 | |||
13 | struct CBindInfoEx: public NCoderMixer2::CBindInfo | ||
14 | { | ||
15 | CRecordVector<CMethodId> CoderMethodIDs; | ||
16 | |||
17 | void Clear() | ||
18 | { | ||
19 | CBindInfo::Clear(); | ||
20 | CoderMethodIDs.Clear(); | ||
21 | } | ||
22 | }; | ||
23 | |||
24 | class CDecoder | ||
25 | { | ||
26 | bool _bindInfoPrev_Defined; | ||
27 | CBindInfoEx _bindInfoPrev; | ||
28 | |||
29 | bool _useMixerMT; | ||
30 | |||
31 | #ifdef USE_MIXER_ST | ||
32 | NCoderMixer2::CMixerST *_mixerST; | ||
33 | #endif | ||
34 | |||
35 | #ifdef USE_MIXER_MT | ||
36 | NCoderMixer2::CMixerMT *_mixerMT; | ||
37 | #endif | ||
38 | |||
39 | NCoderMixer2::CMixer *_mixer; | ||
40 | CMyComPtr<IUnknown> _mixerRef; | ||
41 | |||
42 | public: | ||
43 | |||
44 | CDecoder(bool useMixerMT); | ||
45 | |||
46 | HRESULT Decode( | ||
47 | DECL_EXTERNAL_CODECS_LOC_VARS | ||
48 | IInStream *inStream, | ||
49 | UInt64 startPos, | ||
50 | const CFolders &folders, unsigned folderIndex, | ||
51 | const UInt64 *unpackSize // if (!unpackSize), then full folder is required | ||
52 | // if (unpackSize), then only *unpackSize bytes from folder are required | ||
53 | |||
54 | , ISequentialOutStream *outStream | ||
55 | , ICompressProgressInfo *compressProgress | ||
56 | |||
57 | , ISequentialInStream **inStreamMainRes | ||
58 | , bool &dataAfterEnd_Error | ||
59 | |||
60 | _7Z_DECODER_CRYPRO_VARS_DECL | ||
61 | |||
62 | #if !defined(_7ZIP_ST) | ||
63 | , bool mtMode, UInt32 numThreads, UInt64 memUsage | ||
64 | #endif | ||
65 | ); | ||
66 | }; | ||
67 | |||
68 | }} | ||
69 | |||
70 | #endif | ||