diff options
Diffstat (limited to 'CPP/7zip/Archive/7z/7zCompressionMode.h')
-rwxr-xr-x | CPP/7zip/Archive/7z/7zCompressionMode.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/CPP/7zip/Archive/7z/7zCompressionMode.h b/CPP/7zip/Archive/7z/7zCompressionMode.h new file mode 100755 index 00000000..fe54e8a6 --- /dev/null +++ b/CPP/7zip/Archive/7z/7zCompressionMode.h @@ -0,0 +1,64 @@ +// 7zCompressionMode.h + +#ifndef __7Z_COMPRESSION_MODE_H +#define __7Z_COMPRESSION_MODE_H + +#include "../../../Windows/PropVariant.h" + +#include "7zMethodID.h" + +namespace NArchive { +namespace N7z { + +struct CProperty +{ + PROPID PropID; + NWindows::NCOM::CPropVariant Value; +}; + +struct CMethodFull +{ + CMethodID MethodID; + UInt32 NumInStreams; + UInt32 NumOutStreams; + bool IsSimpleCoder() const + { return (NumInStreams == 1) && (NumOutStreams == 1); } + + #ifdef EXCLUDE_COM + #else + CLSID EncoderClassID; + CSysString FilePath; + #endif + + CObjectVector<CProperty> CoderProperties; +}; + +struct CBind +{ + UInt32 InCoder; + UInt32 InStream; + UInt32 OutCoder; + UInt32 OutStream; +}; + +struct CCompressionMethodMode +{ + CObjectVector<CMethodFull> Methods; + CRecordVector<CBind> Binds; + #ifdef COMPRESS_MT + UInt32 NumThreads; + #endif + bool PasswordIsDefined; + UString Password; + + bool IsEmpty() const { return (Methods.IsEmpty() && !PasswordIsDefined); } + CCompressionMethodMode(): PasswordIsDefined(false) + #ifdef COMPRESS_MT + , NumThreads(1) + #endif + {} +}; + +}} + +#endif |