1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_package_zip_ZipConstants_idl__
24*b1cdbd2cSJim Jagielski#define __com_sun_star_package_zip_ZipConstants_idl__
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski
28*b1cdbd2cSJim Jagielski//=============================================================================
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielskimodule com {  module sun {  module star {   module packages {  module zip {
31*b1cdbd2cSJim Jagielski
32*b1cdbd2cSJim Jagielski//=============================================================================
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski/** defines the constants used by the ZIP interfaces.
35*b1cdbd2cSJim Jagielski */
36*b1cdbd2cSJim Jagielskipublished constants ZipConstants
37*b1cdbd2cSJim Jagielski{
38*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
39*b1cdbd2cSJim Jagielski    /** Compression method for the deflate algorithm (the only one currently
40*b1cdbd2cSJim Jagielski	   supported).
41*b1cdbd2cSJim Jagielski	 */
42*b1cdbd2cSJim Jagielski    const short DEFLATED = 8;
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
45*b1cdbd2cSJim Jagielski    /** Compression level for no compression.
46*b1cdbd2cSJim Jagielski	 */
47*b1cdbd2cSJim Jagielski    const short NO_COMPRESSION = 0;
48*b1cdbd2cSJim Jagielski
49*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
50*b1cdbd2cSJim Jagielski    /** Compression level for fastest compression
51*b1cdbd2cSJim Jagielski	 */
52*b1cdbd2cSJim Jagielski    const short BEST_SPEED = 1;
53*b1cdbd2cSJim Jagielski
54*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
55*b1cdbd2cSJim Jagielski    /** Compression level for best compression
56*b1cdbd2cSJim Jagielski	 */
57*b1cdbd2cSJim Jagielski    const short BEST_COMPRESSION = 9;
58*b1cdbd2cSJim Jagielski
59*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
60*b1cdbd2cSJim Jagielski    /** Default compression level.
61*b1cdbd2cSJim Jagielski	 */
62*b1cdbd2cSJim Jagielski    const short DEFAULT_COMPRESSION = -1;
63*b1cdbd2cSJim Jagielski
64*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
65*b1cdbd2cSJim Jagielski    /** Compression strategy best used for data consisting mostly of small
66*b1cdbd2cSJim Jagielski	  values with a somewhat random distribution. Forces more Huffman
67*b1cdbd2cSJim Jagielski	  coding and less string matching.
68*b1cdbd2cSJim Jagielski	 */
69*b1cdbd2cSJim Jagielski    const short FILTERED = 1;
70*b1cdbd2cSJim Jagielski
71*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
72*b1cdbd2cSJim Jagielski    /** Compression strategy for Huffman coding only.
73*b1cdbd2cSJim Jagielski	 */
74*b1cdbd2cSJim Jagielski    const short HUFFMAN_ONLY = 2;
75*b1cdbd2cSJim Jagielski
76*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
77*b1cdbd2cSJim Jagielski    /** Default compression strategy
78*b1cdbd2cSJim Jagielski	 */
79*b1cdbd2cSJim Jagielski    const short DEFAULT_STRATEGY = 0;
80*b1cdbd2cSJim Jagielski
81*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
82*b1cdbd2cSJim Jagielski    /** entry is uncompressed
83*b1cdbd2cSJim Jagielski	 */
84*b1cdbd2cSJim Jagielski    const short STORED = 0;
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
87*b1cdbd2cSJim Jagielski    /** entry is uncompressed
88*b1cdbd2cSJim Jagielski	 */
89*b1cdbd2cSJim Jagielski    const short DEF_MEM_LEVEL = 8;
90*b1cdbd2cSJim Jagielski
91*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
92*b1cdbd2cSJim Jagielski	/** Header Signature: "PK\003\004"
93*b1cdbd2cSJim Jagielski	 */
94*b1cdbd2cSJim Jagielski	const long LOCSIG  = 0x04034b50;
95*b1cdbd2cSJim Jagielski
96*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
97*b1cdbd2cSJim Jagielski	/** Header Signature: "PK\007\008"
98*b1cdbd2cSJim Jagielski	 */
99*b1cdbd2cSJim Jagielski	const long EXTSIG  = 0x08074b50;
100*b1cdbd2cSJim Jagielski
101*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
102*b1cdbd2cSJim Jagielski	/** Header Signature: "PK\001\002"
103*b1cdbd2cSJim Jagielski	 */
104*b1cdbd2cSJim Jagielski    const long CENSIG  = 0x02014b50;
105*b1cdbd2cSJim Jagielski
106*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
107*b1cdbd2cSJim Jagielski	/** Header Signature: "PK\005\006"
108*b1cdbd2cSJim Jagielski	 */
109*b1cdbd2cSJim Jagielski    const long ENDSIG  = 0x06054b50;
110*b1cdbd2cSJim Jagielski
111*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
112*b1cdbd2cSJim Jagielski	/** Header Signature: "PK\007\008"
113*b1cdbd2cSJim Jagielski	 */
114*b1cdbd2cSJim Jagielski    const long SPANSIG = 0x08074b50;
115*b1cdbd2cSJim Jagielski
116*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
117*b1cdbd2cSJim Jagielski	/** LOC header size in bytes (including signatures)
118*b1cdbd2cSJim Jagielski	 */
119*b1cdbd2cSJim Jagielski	const short LOCHDR = 30;
120*b1cdbd2cSJim Jagielski
121*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
122*b1cdbd2cSJim Jagielski	/** EXT header size in bytes (including signatures)
123*b1cdbd2cSJim Jagielski	 */
124*b1cdbd2cSJim Jagielski    const short EXTHDR = 16;
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
127*b1cdbd2cSJim Jagielski	/** CEN header size in bytes (including signatures)
128*b1cdbd2cSJim Jagielski	 */
129*b1cdbd2cSJim Jagielski    const short CENHDR = 46;
130*b1cdbd2cSJim Jagielski
131*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
132*b1cdbd2cSJim Jagielski	/** END header size in bytes (including signatures)
133*b1cdbd2cSJim Jagielski	 */
134*b1cdbd2cSJim Jagielski	const short ENDHDR = 22;
135*b1cdbd2cSJim Jagielski
136*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
137*b1cdbd2cSJim Jagielski	/// LOC LOC LOC
138*b1cdbd2cSJim Jagielski    /** LOC header field "version needed to extract" offset
139*b1cdbd2cSJim Jagielski	 */
140*b1cdbd2cSJim Jagielski    const short LOCVER = 4;
141*b1cdbd2cSJim Jagielski
142*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
143*b1cdbd2cSJim Jagielski    /** LOC header field "general purpose bit flags" offset
144*b1cdbd2cSJim Jagielski	 */
145*b1cdbd2cSJim Jagielski    const short LOCFLG = 6;
146*b1cdbd2cSJim Jagielski
147*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
148*b1cdbd2cSJim Jagielski    /** LOC header field "compression method" offset
149*b1cdbd2cSJim Jagielski	 */
150*b1cdbd2cSJim Jagielski    const short LOCHOW = 8;
151*b1cdbd2cSJim Jagielski
152*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
153*b1cdbd2cSJim Jagielski    /** LOC header field "modification time" offset
154*b1cdbd2cSJim Jagielski	 */
155*b1cdbd2cSJim Jagielski    const short LOCTIM = 10;
156*b1cdbd2cSJim Jagielski
157*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
158*b1cdbd2cSJim Jagielski    /** LOC header field "crc of uncompressed data" offset
159*b1cdbd2cSJim Jagielski	 */
160*b1cdbd2cSJim Jagielski    const short LOCCRC = 14;
161*b1cdbd2cSJim Jagielski
162*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
163*b1cdbd2cSJim Jagielski    /** LOC header field "compressed data size" offset
164*b1cdbd2cSJim Jagielski	 */
165*b1cdbd2cSJim Jagielski	const short LOCSIZ = 18;
166*b1cdbd2cSJim Jagielski
167*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
168*b1cdbd2cSJim Jagielski    /** LOC header field "uncompressed data size" offset
169*b1cdbd2cSJim Jagielski	 */
170*b1cdbd2cSJim Jagielski	const short LOCLEN = 22;
171*b1cdbd2cSJim Jagielski
172*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
173*b1cdbd2cSJim Jagielski    /** LOC header field "filename length" offset
174*b1cdbd2cSJim Jagielski	 */
175*b1cdbd2cSJim Jagielski	const short LOCNAM = 26;
176*b1cdbd2cSJim Jagielski
177*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
178*b1cdbd2cSJim Jagielski    /** LOC header field "extra field length" offset
179*b1cdbd2cSJim Jagielski	 */
180*b1cdbd2cSJim Jagielski	const short LOCEXT = 28;
181*b1cdbd2cSJim Jagielski
182*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
183*b1cdbd2cSJim Jagielski	/** EXT header field "crc of uncompressed data" offsets
184*b1cdbd2cSJim Jagielski	 */
185*b1cdbd2cSJim Jagielski	const short EXTCRC = 4;
186*b1cdbd2cSJim Jagielski
187*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
188*b1cdbd2cSJim Jagielski	/** EXT header field "compressed size" offsets
189*b1cdbd2cSJim Jagielski	 */
190*b1cdbd2cSJim Jagielski	const short EXTSIZ = 8;
191*b1cdbd2cSJim Jagielski
192*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
193*b1cdbd2cSJim Jagielski	/** EXT header field "uncompressed size" offsets
194*b1cdbd2cSJim Jagielski	 */
195*b1cdbd2cSJim Jagielski	const short EXTLEN = 12;
196*b1cdbd2cSJim Jagielski
197*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
198*b1cdbd2cSJim Jagielski	/** CEN header field "version made by" offset
199*b1cdbd2cSJim Jagielski	 */
200*b1cdbd2cSJim Jagielski	const short CENVEM = 4;
201*b1cdbd2cSJim Jagielski
202*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
203*b1cdbd2cSJim Jagielski	/** CEN header field "version needed to extract" offset
204*b1cdbd2cSJim Jagielski	 */
205*b1cdbd2cSJim Jagielski	const short CENVER = 6;
206*b1cdbd2cSJim Jagielski
207*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
208*b1cdbd2cSJim Jagielski	/** CEN header field "general purpose bit flags" offset
209*b1cdbd2cSJim Jagielski	 */
210*b1cdbd2cSJim Jagielski	const short CENFLG = 8;
211*b1cdbd2cSJim Jagielski
212*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
213*b1cdbd2cSJim Jagielski	/** CEN header field "compression method" offset
214*b1cdbd2cSJim Jagielski	 */
215*b1cdbd2cSJim Jagielski	const short CENHOW = 10;
216*b1cdbd2cSJim Jagielski
217*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
218*b1cdbd2cSJim Jagielski	/** CEN header field "modification time" offset
219*b1cdbd2cSJim Jagielski	 */
220*b1cdbd2cSJim Jagielski	const short CENTIM = 12;
221*b1cdbd2cSJim Jagielski
222*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
223*b1cdbd2cSJim Jagielski	/** CEN header field "modification time" offset
224*b1cdbd2cSJim Jagielski	 */
225*b1cdbd2cSJim Jagielski	const short CENDAT = 14;
226*b1cdbd2cSJim Jagielski
227*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
228*b1cdbd2cSJim Jagielski	/** CEN header field "crc of uncompressed data" offset
229*b1cdbd2cSJim Jagielski	 */
230*b1cdbd2cSJim Jagielski	const short CENCRC = 16;
231*b1cdbd2cSJim Jagielski
232*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
233*b1cdbd2cSJim Jagielski	/** CEN header field "compressed size" offset
234*b1cdbd2cSJim Jagielski	 */
235*b1cdbd2cSJim Jagielski	const short CENSIZ = 20;
236*b1cdbd2cSJim Jagielski
237*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
238*b1cdbd2cSJim Jagielski	/** CEN header field "uncompressed size" offset
239*b1cdbd2cSJim Jagielski	 */
240*b1cdbd2cSJim Jagielski	const short CENLEN = 24;
241*b1cdbd2cSJim Jagielski
242*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
243*b1cdbd2cSJim Jagielski	/** CEN header field "length of filename" offset
244*b1cdbd2cSJim Jagielski	 */
245*b1cdbd2cSJim Jagielski	const short CENNAM = 28;
246*b1cdbd2cSJim Jagielski
247*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
248*b1cdbd2cSJim Jagielski	/** CEN header field "length of extra field" offset
249*b1cdbd2cSJim Jagielski	 */
250*b1cdbd2cSJim Jagielski	const short CENEXT = 30;
251*b1cdbd2cSJim Jagielski
252*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
253*b1cdbd2cSJim Jagielski	/** CEN header field "file comment length" offset
254*b1cdbd2cSJim Jagielski	 */
255*b1cdbd2cSJim Jagielski	const short CENCOM = 32;
256*b1cdbd2cSJim Jagielski
257*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
258*b1cdbd2cSJim Jagielski	/** CEN header field "disk number start" offset
259*b1cdbd2cSJim Jagielski	 */
260*b1cdbd2cSJim Jagielski	const short CENDSK = 34;
261*b1cdbd2cSJim Jagielski
262*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
263*b1cdbd2cSJim Jagielski	/** CEN header field "internal file attributes" offset
264*b1cdbd2cSJim Jagielski	 */
265*b1cdbd2cSJim Jagielski	const short CENATT = 36;
266*b1cdbd2cSJim Jagielski
267*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
268*b1cdbd2cSJim Jagielski	/** CEN header field "external file attributes" offset
269*b1cdbd2cSJim Jagielski	 */
270*b1cdbd2cSJim Jagielski	const short CENATX = 38;
271*b1cdbd2cSJim Jagielski
272*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
273*b1cdbd2cSJim Jagielski	/** CEN header field "offset of local header" offset
274*b1cdbd2cSJim Jagielski	 */
275*b1cdbd2cSJim Jagielski	const short CENOFF = 42;
276*b1cdbd2cSJim Jagielski
277*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
278*b1cdbd2cSJim Jagielski	/** END header field "number of entries on this disk" offset
279*b1cdbd2cSJim Jagielski	 */
280*b1cdbd2cSJim Jagielski	const short ENDSUB = 8;
281*b1cdbd2cSJim Jagielski
282*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
283*b1cdbd2cSJim Jagielski	/** END header field "total number of entries" offset
284*b1cdbd2cSJim Jagielski	 */
285*b1cdbd2cSJim Jagielski	const short ENDTOT = 10;
286*b1cdbd2cSJim Jagielski
287*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
288*b1cdbd2cSJim Jagielski	/** END header field "central directory size" offset
289*b1cdbd2cSJim Jagielski	 */
290*b1cdbd2cSJim Jagielski	const short ENDSIZ = 12;
291*b1cdbd2cSJim Jagielski
292*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
293*b1cdbd2cSJim Jagielski	/** END header field "central directory offset" offset
294*b1cdbd2cSJim Jagielski	 */
295*b1cdbd2cSJim Jagielski	const short ENDOFF = 16;
296*b1cdbd2cSJim Jagielski
297*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
298*b1cdbd2cSJim Jagielski	/** END header field "size of zip file comment" offset
299*b1cdbd2cSJim Jagielski	 */
300*b1cdbd2cSJim Jagielski	const short ENDCOM = 20;
301*b1cdbd2cSJim Jagielski
302*b1cdbd2cSJim Jagielski};
303*b1cdbd2cSJim Jagielski//=============================================================================
304*b1cdbd2cSJim Jagielski
305*b1cdbd2cSJim Jagielski}; }; }; }; };
306*b1cdbd2cSJim Jagielski
307*b1cdbd2cSJim Jagielski#endif
308