1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.handler.codec.compression;
17
18 import com.jcraft.jzlib.Deflater;
19 import com.jcraft.jzlib.Inflater;
20 import com.jcraft.jzlib.JZlib;
21
22
23
24
25 final class ZlibUtil {
26
27 static void fail(Inflater z, String message, int resultCode) {
28 throw inflaterException(z, message, resultCode);
29 }
30
31 static void fail(Deflater z, String message, int resultCode) {
32 throw deflaterException(z, message, resultCode);
33 }
34
35 static DecompressionException inflaterException(Inflater z, String message, int resultCode) {
36 return new DecompressionException(message + " (" + resultCode + ')' + (z.msg != null? ": " + z.msg : ""));
37 }
38
39 static CompressionException deflaterException(Deflater z, String message, int resultCode) {
40 return new CompressionException(message + " (" + resultCode + ')' + (z.msg != null? ": " + z.msg : ""));
41 }
42
43 static JZlib.WrapperType convertWrapperType(ZlibWrapper wrapper) {
44 switch (wrapper) {
45 case NONE:
46 return JZlib.W_NONE;
47 case ZLIB:
48 return JZlib.W_ZLIB;
49 case GZIP:
50 return JZlib.W_GZIP;
51 case ZLIB_OR_NONE:
52 return JZlib.W_ANY;
53 default:
54 throw new Error("Unexpected wrapper type: " + wrapper);
55 }
56 }
57
58 static int wrapperOverhead(ZlibWrapper wrapper) {
59 switch (wrapper) {
60 case NONE:
61 return 0;
62 case ZLIB:
63 case ZLIB_OR_NONE:
64 return 2;
65 case GZIP:
66 return 10;
67 default:
68 throw new Error("Unexpected wrapper type: " + wrapper);
69 }
70 }
71
72 private ZlibUtil() {
73 }
74 }