13 unsigned long DeflateOutputStreamBuffer::crctable[] = {
14 0x00000000
L, 0x77073096
L, 0xEE0E612C
L, 0x990951BA
L,
15 0x076DC419
L, 0x706AF48F
L, 0xE963A535
L, 0x9E6495A3
L,
16 0x0EDB8832
L, 0x79DCB8A4
L, 0xE0D5E91E
L, 0x97D2D988
L,
17 0x09B64C2B
L, 0x7EB17CBD
L, 0xE7B82D07
L, 0x90BF1D91
L,
18 0x1DB71064
L, 0x6AB020F2
L, 0xF3B97148
L, 0x84BE41DE
L,
19 0x1ADAD47D
L, 0x6DDDE4EB
L, 0xF4D4B551
L, 0x83D385C7
L,
20 0x136C9856
L, 0x646BA8C0
L, 0xFD62F97A
L, 0x8A65C9EC
L,
21 0x14015C4F
L, 0x63066CD9
L, 0xFA0F3D63
L, 0x8D080DF5
L,
22 0x3B6E20C8
L, 0x4C69105E
L, 0xD56041E4
L, 0xA2677172
L,
23 0x3C03E4D1
L, 0x4B04D447
L, 0xD20D85FD
L, 0xA50AB56B
L,
24 0x35B5A8FA
L, 0x42B2986C
L, 0xDBBBC9D6
L, 0xACBCF940
L,
25 0x32D86CE3
L, 0x45DF5C75
L, 0xDCD60DCF
L, 0xABD13D59
L,
26 0x26D930AC
L, 0x51DE003A
L, 0xC8D75180
L, 0xBFD06116
L,
27 0x21B4F4B5
L, 0x56B3C423
L, 0xCFBA9599
L, 0xB8BDA50F
L,
28 0x2802B89E
L, 0x5F058808
L, 0xC60CD9B2
L, 0xB10BE924
L,
29 0x2F6F7C87
L, 0x58684C11
L, 0xC1611DAB
L, 0xB6662D3D
L,
30 0x76DC4190
L, 0x01DB7106
L, 0x98D220BC
L, 0xEFD5102A
L,
31 0x71B18589
L, 0x06B6B51F
L, 0x9FBFE4A5
L, 0xE8B8D433
L,
32 0x7807C9A2
L, 0x0F00F934
L, 0x9609A88E
L, 0xE10E9818
L,
33 0x7F6A0DBB
L, 0x086D3D2D
L, 0x91646C97
L, 0xE6635C01
L,
34 0x6B6B51F4
L, 0x1C6C6162
L, 0x856530D8
L, 0xF262004E
L,
35 0x6C0695ED
L, 0x1B01A57B
L, 0x8208F4C1
L, 0xF50FC457
L,
36 0x65B0D9C6
L, 0x12B7E950
L, 0x8BBEB8EA
L, 0xFCB9887C
L,
37 0x62DD1DDF
L, 0x15DA2D49
L, 0x8CD37CF3
L, 0xFBD44C65
L,
38 0x4DB26158
L, 0x3AB551CE
L, 0xA3BC0074
L, 0xD4BB30E2
L,
39 0x4ADFA541
L, 0x3DD895D7
L, 0xA4D1C46D
L, 0xD3D6F4FB
L,
40 0x4369E96A
L, 0x346ED9FC
L, 0xAD678846
L, 0xDA60B8D0
L,
41 0x44042D73
L, 0x33031DE5
L, 0xAA0A4C5F
L, 0xDD0D7CC9
L,
42 0x5005713C
L, 0x270241AA
L, 0xBE0B1010
L, 0xC90C2086
L,
43 0x5768B525
L, 0x206F85B3
L, 0xB966D409
L, 0xCE61E49F
L,
44 0x5EDEF90E
L, 0x29D9C998
L, 0xB0D09822
L, 0xC7D7A8B4
L,
45 0x59B33D17
L, 0x2EB40D81
L, 0xB7BD5C3B
L, 0xC0BA6CAD
L,
46 0xEDB88320
L, 0x9ABFB3B6
L, 0x03B6E20C
L, 0x74B1D29A
L,
47 0xEAD54739
L, 0x9DD277AF
L, 0x04DB2615
L, 0x73DC1683
L,
48 0xE3630B12
L, 0x94643B84
L, 0x0D6D6A3E
L, 0x7A6A5AA8
L,
49 0xE40ECF0B
L, 0x9309FF9D
L, 0x0A00AE27
L, 0x7D079EB1
L,
50 0xF00F9344
L, 0x8708A3D2
L, 0x1E01F268
L, 0x6906C2FE
L,
51 0xF762575D
L, 0x806567CB
L, 0x196C3671
L, 0x6E6B06E7
L,
52 0xFED41B76
L, 0x89D32BE0
L, 0x10DA7A5A
L, 0x67DD4ACC
L,
53 0xF9B9DF6F
L, 0x8EBEEFF9
L, 0x17B7BE43
L, 0x60B08ED5
L,
54 0xD6D6A3E8
L, 0xA1D1937E
L, 0x38D8C2C4
L, 0x4FDFF252
L,
55 0xD1BB67F1
L, 0xA6BC5767
L, 0x3FB506DD
L, 0x48B2364B
L,
56 0xD80D2BDA
L, 0xAF0A1B4C
L, 0x36034AF6
L, 0x41047A60
L,
57 0xDF60EFC3
L, 0xA867DF55
L, 0x316E8EEF
L, 0x4669BE79
L,
58 0xCB61B38C
L, 0xBC66831A
L, 0x256FD2A0
L, 0x5268E236
L,
59 0xCC0C7795
L, 0xBB0B4703
L, 0x220216B9
L, 0x5505262F
L,
60 0xC5BA3BBE
L, 0xB2BD0B28
L, 0x2BB45A92
L, 0x5CB36A04
L,
61 0xC2D7FFA7
L, 0xB5D0CF31
L, 0x2CD99E8B
L, 0x5BDEAE1D
L,
62 0x9B64C2B0
L, 0xEC63F226
L, 0x756AA39C
L, 0x026D930A
L,
63 0x9C0906A9
L, 0xEB0E363F
L, 0x72076785
L, 0x05005713
L,
64 0x95BF4A82
L, 0xE2B87A14
L, 0x7BB12BAE
L, 0x0CB61B38
L,
65 0x92D28E9B
L, 0xE5D5BE0D
L, 0x7CDCEFB7
L, 0x0BDBDF21
L,
66 0x86D3D2D4
L, 0xF1D4E242
L, 0x68DDB3F8
L, 0x1FDA836E
L,
67 0x81BE16CD
L, 0xF6B9265B
L, 0x6FB077E1
L, 0x18B74777
L,
68 0x88085AE6
L, 0xFF0F6A70
L, 0x66063BCA
L, 0x11010B5C
L,
69 0x8F659EFF
L, 0xF862AE69
L, 0x616BFFD3
L, 0x166CCF45
L,
70 0xA00AE278
L, 0xD70DD2EE
L, 0x4E048354
L, 0x3903B3C2
L,
71 0xA7672661
L, 0xD06016F7
L, 0x4969474D
L, 0x3E6E77DB
L,
72 0xAED16A4A
L, 0xD9D65ADC
L, 0x40DF0B66
L, 0x37D83BF0
L,
73 0xA9BCAE53
L, 0xDEBB9EC5
L, 0x47B2CF7F
L, 0x30B5FFE9
L,
74 0xBDBDF21C
L, 0xCABAC28A
L, 0x53B39330
L, 0x24B4A3A6
L,
75 0xBAD03605
L, 0xCDD70693
L, 0x54DE5729
L, 0x23D967BF
L,
76 0xB3667A2E
L, 0xC4614AB8
L, 0x5D681B02
L, 0x2A6F2B94
L,
77 0xB40BBE37
L, 0xC30C8EA1
L, 0x5A05DF1B
L, 0x2D02EF8DL
84 #ifndef CHEPREP_NO_ZLIB
91 #ifndef CHEPREP_NO_ZLIB
99 #endif // CHEPREP_NO_ZLIB
102 #ifndef CHEPREP_NO_ZLIB
106 if (zStreamOpen)
return;
108 zStream.
next_in =
reinterpret_cast<unsigned char *
>(&(in[0]));
111 zStream.
next_out =
reinterpret_cast<unsigned char *
>(&(out[0]));
115 cerr <<
"ERROR: deflateInit2 failed" << endl;
118 setp(&(in[0]), &(in[0])+inSize);
123 #endif // CHEPREP_NO_ZLIB
131 #ifndef CHEPREP_NO_ZLIB
136 zStream.
next_out =
reinterpret_cast<unsigned char *
>(&(out[0]));
140 while ( err ==
Z_OK ) {
150 cerr <<
"ERROR: deflation failed" << endl;
154 cerr <<
"ERROR: deflateEnd failed" << endl;
157 zStreamOpen = false ;
159 #endif // CHEPREP_NO_ZLIB
166 #ifndef CHEPREP_NO_ZLIB
167 #define DO1 crc = crctable[(crc ^ (*buf++)) & 0xff] ^ (crc >> 8)
168 #define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1
169 #endif // CHEPREP_NO_ZLIB
174 #ifndef CHEPREP_NO_ZLIB
176 zStream.
avail_in = pptr() - pbase() ;
177 zStream.
next_in =
reinterpret_cast<unsigned char *
>(&(in[0]));
180 unsigned char* buf = zStream.
next_in;
182 crc = crc ^ 0xffffffffUL;
190 crc = crc ^ 0xffffffffUL;
194 zStream.
next_out =
reinterpret_cast<unsigned char *
>(&(out[0]));
207 setp(&(in[0]), &(in[0]) + inSize);
210 cerr <<
"ERROR: deflation failed" << endl;
221 #endif // CHEPREP_NO_ZLIB
222 crc = crc ^ 0xffffffffUL;
223 crc = crctable[(crc ^ c) & 0xff] ^ (crc >> 8);
224 crc = crc ^ 0xffffffffUL;
226 return buffer->sputc((
char)c);
227 #ifndef CHEPREP_NO_ZLIB
229 #endif // CHEPREP_NO_ZLIB
233 #ifndef CHEPREP_NO_ZLIB
235 int deflatedCount = outSize - zStream.
avail_out;
236 int byteCount = buffer->sputn(&(out[0]), deflatedCount);
238 zStream.
next_out =
reinterpret_cast<unsigned char *
>(&(out[0]));
241 return deflatedCount == byteCount ;
243 #endif // CHEPREP_NO_ZLIB
int ZEXPORT deflateEnd(z_streamp strm)
#define deflateInit2(strm, level, method, windowBits, memLevel, strategy)
virtual ~DeflateOutputStreamBuffer()
struct internal_state FAR * state
DeflateOutputStreamBuffer(std::streambuf *buffer)
int ZEXPORT deflate(z_streamp strm, int flush)
int ZEXPORT compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
#define Z_DEFAULT_STRATEGY
static constexpr double L