View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   https://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package org.apache.commons.compress.compressors.zstandard;
21  
22  import com.github.luben.zstd.Zstd;
23  
24  /**
25   * Zstd constants.
26   *
27   * @since 1.28.0
28   */
29  public class ZstdConstants {
30  
31      /**
32       * Maximum chain log value.
33       *
34       * <p>
35       * <small>This constant name matches the name in the C header file.</small>
36       * </p>
37       *
38       * @see ZstdCompressorOutputStream.Builder#setLevel(int)
39       * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
40       */
41      public static final int ZSTD_CHAINLOG_MAX = Zstd.chainLogMax();
42  
43      /**
44       * Minimum chain log value.
45       *
46       * <p>
47       * <small>This constant name matches the name in the C header file.</small>
48       * </p>
49       *
50       * @see ZstdCompressorOutputStream.Builder#setLevel(int)
51       * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
52       */
53      public static final int ZSTD_CHAINLOG_MIN = Zstd.chainLogMin();
54  
55      /**
56       * Default compression level.
57       *
58       * <p>
59       * <small>This constant name matches the name in the C header file.</small>
60       * </p>
61       *
62       * @see ZstdCompressorOutputStream.Builder#setLevel(int)
63       * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
64       */
65      public static final int ZSTD_CLEVEL_DEFAULT = Zstd.defaultCompressionLevel();
66  
67      /**
68       * Maximum compression level.
69       *
70       * <p>
71       * <small>This constant name matches the name in the C header file.</small>
72       * </p>
73       *
74       * @see ZstdCompressorOutputStream.Builder#setLevel(int)
75       * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
76       */
77      public static final int ZSTD_CLEVEL_MAX = Zstd.maxCompressionLevel();
78  
79      /**
80       * Minimum compression level.
81       *
82       * <p>
83       * <small>This constant name matches the name in the C header file.</small>
84       * </p>
85       *
86       * @see ZstdCompressorOutputStream.Builder#setLevel(int)
87       * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
88       */
89      public static final int ZSTD_CLEVEL_MIN = Zstd.minCompressionLevel();
90  
91      /**
92       * Maximum hash log value.
93       *
94       * <p>
95       * <small>This constant name matches the name in the C header file.</small>
96       * </p>
97       *
98       * @see ZstdCompressorOutputStream.Builder#setHashLog(int)
99       * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
100      */
101     public static final int ZSTD_HASHLOG_MAX = Zstd.hashLogMax();
102 
103     /**
104      * Minimum hash log value.
105      *
106      * <p>
107      * <small>This constant name matches the name in the C header file.</small>
108      * </p>
109      *
110      * @see ZstdCompressorOutputStream.Builder#setHashLog(int)
111      * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
112      */
113     public static final int ZSTD_HASHLOG_MIN = Zstd.hashLogMin();
114 
115     /**
116      * {@code ZSTD_MINMATCH_MAX} = {@value}. Only for ZSTD_fast, other strategies are limited to 6.
117      *
118      * <p>
119      * <small>This constant name matches the name in the C header file.</small>
120      * </p>
121      *
122      * @see ZstdCompressorOutputStream.Builder#setMinMatch(int)
123      * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
124      */
125     public static final int ZSTD_MINMATCH_MAX = 7;
126 
127     /**
128      * {@code ZSTD_MINMATCH_MAX} = {@value}. Only for ZSTD_btopt+, faster strategies are limited to 4.
129      */
130     public static final int ZSTD_MINMATCH_MIN = 3;
131 
132     /**
133      * Maximum search log value.
134      *
135      * <p>
136      * <small>This constant name matches the name in the C header file.</small>
137      * </p>
138      *
139      * @see ZstdCompressorOutputStream.Builder#setSearchLog(int)
140      * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
141      */
142     public static final int ZSTD_SEARCHLOG_MAX = Zstd.searchLogMax();
143 
144     /**
145      * Minimum search log value.
146      *
147      * <p>
148      * <small>This constant name matches the name in the C header file.</small>
149      * </p>
150      *
151      * @see ZstdCompressorOutputStream.Builder#setSearchLog(int)
152      * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
153      */
154     public static final int ZSTD_SEARCHLOG_MIN = Zstd.searchLogMin();
155 
156     /**
157      * {@code ZSTD_WINDOWLOG_LIMIT_DEFAULT} = {@value}.
158      * <p>
159      * By default, the streaming decoder will refuse any frame requiring larger than (in C) {@code (1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT)} window size, to preserve
160      * host's memory from unreasonable requirements.
161      * </p>
162      *
163      * <p>
164      * <small>This constant name matches the name in the C header file.</small>
165      * </p>
166      *
167      * @see ZstdCompressorOutputStream.Builder#setMinMatch(int)
168      * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
169      */
170     public static final int ZSTD_WINDOWLOG_LIMIT_DEFAULT = 27;
171 
172     /**
173      * Maximum window log value.
174      *
175      * <p>
176      * <small>This constant name matches the name in the C header file.</small>
177      * </p>
178      *
179      * @see ZstdCompressorOutputStream.Builder#setWindowLog(int)
180      * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
181      */
182     public static final int ZSTD_WINDOWLOG_MAX = Zstd.windowLogMax();
183 
184     /**
185      * Minimum window log value.
186      *
187      * <p>
188      * <small>This constant name matches the name in the C header file.</small>
189      * </p>
190      *
191      * @see ZstdCompressorOutputStream.Builder#setWindowLog(int)
192      * @see <a href="https://github.com/facebook/zstd/blob/dev/lib/zstd.h">zstd.h</a>
193      */
194     public static final int ZSTD_WINDOWLOG_MIN = Zstd.windowLogMin();
195 
196 }