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