xref: /aosp_15_r20/external/lzma/CPP/7zip/Compress/PpmdZip.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
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