diff options
Diffstat (limited to '3rdparty/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h')
-rw-r--r-- | 3rdparty/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/3rdparty/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h b/3rdparty/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h index 5cde97c38ba..8105ff0413d 100644 --- a/3rdparty/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +++ b/3rdparty/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h @@ -9,37 +9,62 @@ namespace NArchive { namespace N7z { -struct CMethodFull: public CProps +struct CMethodFull: public CMethodProps { CMethodId Id; - UInt32 NumInStreams; - UInt32 NumOutStreams; + UInt32 NumStreams; - bool IsSimpleCoder() const { return (NumInStreams == 1) && (NumOutStreams == 1); } + bool IsSimpleCoder() const { return NumStreams == 1; } }; -struct CBind +struct CBond2 { - UInt32 InCoder; - UInt32 InStream; UInt32 OutCoder; UInt32 OutStream; + UInt32 InCoder; }; struct CCompressionMethodMode { + /* + if (Bonds.Empty()), then default bonds must be created + if (Filter_was_Inserted) + { + Methods[0] is filter method + Bonds don't contain bonds for filter (these bonds must be created) + } + */ + CObjectVector<CMethodFull> Methods; - CRecordVector<CBind> Binds; + CRecordVector<CBond2> Bonds; + + bool IsThereBond_to_Coder(unsigned coderIndex) const + { + FOR_VECTOR(i, Bonds) + if (Bonds[i].InCoder == coderIndex) + return true; + return false; + } + + bool DefaultMethod_was_Inserted; + bool Filter_was_Inserted; + #ifndef _7ZIP_ST UInt32 NumThreads; + bool MultiThreadMixer; #endif + bool PasswordIsDefined; UString Password; bool IsEmpty() const { return (Methods.IsEmpty() && !PasswordIsDefined); } - CCompressionMethodMode(): PasswordIsDefined(false) + CCompressionMethodMode(): + DefaultMethod_was_Inserted(false), + Filter_was_Inserted(false), + PasswordIsDefined(false) #ifndef _7ZIP_ST , NumThreads(1) + , MultiThreadMixer(true) #endif {} }; |