1 // PpmdZip.h 2 3 #ifndef ZIP7_INC_COMPRESS_PPMD_ZIP_H 4 #define ZIP7_INC_COMPRESS_PPMD_ZIP_H 5 6 #include "../../../C/Alloc.h" 7 #include "../../../C/Ppmd8.h" 8 9 #include "../../Common/MyCom.h" 10 11 #include "../ICoder.h" 12 13 #include "../Common/CWrappers.h" 14 15 namespace NCompress { 16 namespace NPpmdZip { 17 18 struct CBuf 19 { 20 Byte *Buf; 21 CBufCBuf22 CBuf(): Buf(NULL) {} ~CBufCBuf23 ~CBuf() { ::MidFree(Buf); } 24 bool Alloc(); 25 }; 26 27 28 Z7_CLASS_IMP_NOQIB_3( 29 CDecoder 30 , ICompressCoder 31 , ICompressSetFinishMode 32 , ICompressGetInStreamProcessedSize 33 ) 34 bool _fullFileMode; 35 CByteInBufWrap _inStream; 36 CBuf _outStream; 37 CPpmd8 _ppmd; 38 public: 39 CDecoder(bool fullFileMode = true); 40 ~CDecoder(); 41 }; 42 43 44 struct CEncProps 45 { 46 UInt32 MemSizeMB; 47 UInt32 ReduceSize; 48 int Order; 49 int Restor; 50 CEncPropsCEncProps51 CEncProps() 52 { 53 MemSizeMB = (UInt32)(Int32)-1; 54 ReduceSize = (UInt32)(Int32)-1; 55 Order = -1; 56 Restor = -1; 57 } 58 void Normalize(int level); 59 }; 60 61 62 Z7_CLASS_IMP_NOQIB_2( 63 CEncoder 64 , ICompressCoder 65 , ICompressSetCoderProperties 66 ) 67 CByteOutBufWrap _outStream; 68 CBuf _inStream; 69 CPpmd8 _ppmd; 70 CEncProps _props; 71 public: 72 CEncoder(); 73 ~CEncoder(); 74 }; 75 76 }} 77 78 #endif 79