1 // 7zCompressionMode.h
2 
3 #ifndef __7Z_COMPRESSION_MODE_H
4 #define __7Z_COMPRESSION_MODE_H
5 
6 #include "../../Common/MethodId.h"
7 #include "../../Common/MethodProps.h"
8 
9 namespace NArchive {
10 namespace N7z {
11 
12 struct CMethodFull: public CProps
13 {
14   CMethodId Id;
15   UInt32 NumInStreams;
16   UInt32 NumOutStreams;
17 
IsSimpleCoderCMethodFull18   bool IsSimpleCoder() const { return (NumInStreams == 1) && (NumOutStreams == 1); }
19 };
20 
21 struct CBind
22 {
23   UInt32 InCoder;
24   UInt32 InStream;
25   UInt32 OutCoder;
26   UInt32 OutStream;
27 };
28 
29 struct CCompressionMethodMode
30 {
31   CObjectVector<CMethodFull> Methods;
32   CRecordVector<CBind> Binds;
33   #ifndef _7ZIP_ST
34   UInt32 NumThreads;
35   #endif
36   bool PasswordIsDefined;
37   UString Password;
38 
IsEmptyCCompressionMethodMode39   bool IsEmpty() const { return (Methods.IsEmpty() && !PasswordIsDefined); }
CCompressionMethodModeCCompressionMethodMode40   CCompressionMethodMode(): PasswordIsDefined(false)
41       #ifndef _7ZIP_ST
42       , NumThreads(1)
43       #endif
44   {}
45 };
46 
47 }}
48 
49 #endif
50