misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zEncode.h
changeset 12213 bb5522e88ab2
equal deleted inserted replaced
12212:ea891871f481 12213:bb5522e88ab2
       
     1 // 7zEncode.h
       
     2 
       
     3 #ifndef __7Z_ENCODE_H
       
     4 #define __7Z_ENCODE_H
       
     5 
       
     6 // #include "../../Common/StreamObjects.h"
       
     7 
       
     8 #include "7zCompressionMode.h"
       
     9 
       
    10 #include "../Common/CoderMixer2.h"
       
    11 #include "../Common/CoderMixer2MT.h"
       
    12 #ifdef _ST_MODE
       
    13 #include "../Common/CoderMixer2ST.h"
       
    14 #endif
       
    15 #include "7zItem.h"
       
    16 
       
    17 #include "../../Common/CreateCoder.h"
       
    18 
       
    19 namespace NArchive {
       
    20 namespace N7z {
       
    21 
       
    22 class CEncoder
       
    23 {
       
    24   NCoderMixer::CCoderMixer2MT *_mixerCoderSpec;
       
    25   CMyComPtr<ICompressCoder2> _mixerCoder;
       
    26 
       
    27   CObjectVector<CCoderInfo> _codersInfo;
       
    28 
       
    29   CCompressionMethodMode _options;
       
    30   NCoderMixer::CBindInfo _bindInfo;
       
    31   NCoderMixer::CBindInfo _decompressBindInfo;
       
    32   NCoderMixer::CBindReverseConverter *_bindReverseConverter;
       
    33   CRecordVector<CMethodId> _decompressionMethods;
       
    34 
       
    35   HRESULT CreateMixerCoder(DECL_EXTERNAL_CODECS_LOC_VARS
       
    36       const UInt64 *inSizeForReduce);
       
    37 
       
    38   bool _constructed;
       
    39 public:
       
    40   CEncoder(const CCompressionMethodMode &options);
       
    41   ~CEncoder();
       
    42   HRESULT EncoderConstr();
       
    43   HRESULT Encode(
       
    44       DECL_EXTERNAL_CODECS_LOC_VARS
       
    45       ISequentialInStream *inStream,
       
    46       const UInt64 *inStreamSize, const UInt64 *inSizeForReduce,
       
    47       CFolder &folderItem,
       
    48       ISequentialOutStream *outStream,
       
    49       CRecordVector<UInt64> &packSizes,
       
    50       ICompressProgressInfo *compressProgress);
       
    51 };
       
    52 
       
    53 }}
       
    54 
       
    55 #endif