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