ObjFW
Loading...
Searching...
No Matches
OFZIPArchiveEntry.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im>
3 *
4 * All rights reserved.
5 *
6 * This file is part of ObjFW. It may be distributed under the terms of the
7 * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
8 * the packaging of this file.
9 *
10 * Alternatively, it may be distributed under the terms of the GNU General
11 * Public License, either version 2 or 3, which can be found in the file
12 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
13 * file.
14 */
15
16#import "OFObject.h"
17#import "OFArchiveEntry.h"
18
19OF_ASSUME_NONNULL_BEGIN
20
23typedef enum {
24 OFZIPArchiveEntryCompressionMethodNone = 0,
25 OFZIPArchiveEntryCompressionMethodShrink = 1,
26 OFZIPArchiveEntryCompressionMethodReduceFactor1 = 2,
27 OFZIPArchiveEntryCompressionMethodReduceFactor2 = 3,
28 OFZIPArchiveEntryCompressionMethodReduceFactor3 = 4,
29 OFZIPArchiveEntryCompressionMethodReduceFactor4 = 5,
30 OFZIPArchiveEntryCompressionMethodImplode = 6,
31 OFZIPArchiveEntryCompressionMethodDeflate = 8,
32 OFZIPArchiveEntryCompressionMethodDeflate64 = 9,
33 OFZIPArchiveEntryCompressionMethodBZIP2 = 12,
34 OFZIPArchiveEntryCompressionMethodLZMA = 14,
35 OFZIPArchiveEntryCompressionMethodWavPack = 97,
36 OFZIPArchiveEntryCompressionMethodPPMd = 98
37} OFZIPArchiveEntryCompressionMethod;
38
84
92
93@class OFString;
94@class OFData;
95@class OFFile;
96@class OFDate;
97
106{
109 uint16_t _generalPurposeBitFlag;
110 OFZIPArchiveEntryCompressionMethod _compressionMethod;
111 uint16_t _lastModifiedFileTime, _lastModifiedFileDate;
112 uint32_t _CRC32;
113 unsigned long long _compressedSize, _uncompressedSize;
114 OFString *_fileName;
115 OFData *_Nullable _extraField;
116 OFString *_Nullable _fileComment;
117 uint32_t _startDiskNumber;
118 uint16_t _internalAttributes;
119 uint32_t _versionSpecificAttributes;
120 int64_t _localFileHeaderOffset;
121 OF_RESERVE_IVARS(OFZIPArchiveEntry, 4)
122}
123
129@property OF_NULLABLE_PROPERTY (readonly, copy, nonatomic) OFData *extraField;
138@property (readonly, nonatomic)
148@property (readonly, nonatomic)
163@property (readonly, nonatomic)
164 OFZIPArchiveEntryCompressionMethod compressionMethod;
169@property (readonly, nonatomic) uint32_t CRC32;
177@property (readonly, nonatomic) uint32_t versionSpecificAttributes;
184@property (readonly, nonatomic) uint16_t generalPurposeBitFlag;
186- (instancetype)init OF_UNAVAILABLE;
187@end
188
189#ifdef __cplusplus
190extern "C" {
191#endif
198extern OFString *OFZIPArchiveEntryVersionToString(uint16_t version);
199
208 OFZIPArchiveEntryCompressionMethod compressionMethod);
209
221extern size_t OFZIPArchiveEntryExtraFieldFind(OFData *extraField,
222 OFZIPArchiveEntryExtraFieldTag tag, uint16_t *size);
223#ifdef __cplusplus
224}
225#endif
226
227OF_ASSUME_NONNULL_END
228
229#import "OFMutableZIPArchiveEntry.h"
OFZIPArchiveEntryAttributeCompatibility
Attribute compatibility part of ZIP versions.
Definition OFZIPArchiveEntry.h:42
@ OFZIPArchiveEntryAttributeCompatibilityAtariST
Definition OFZIPArchiveEntry.h:54
@ OFZIPArchiveEntryAttributeCompatibilityOpenVMS
Definition OFZIPArchiveEntry.h:48
@ OFZIPArchiveEntryAttributeCompatibilityOS400
Definition OFZIPArchiveEntry.h:80
@ OFZIPArchiveEntryAttributeCompatibilityAcornRISCOS
Definition OFZIPArchiveEntry.h:70
@ OFZIPArchiveEntryAttributeCompatibilityWindowsNTFS
Definition OFZIPArchiveEntry.h:64
@ OFZIPArchiveEntryAttributeCompatibilityBeOS
Definition OFZIPArchiveEntry.h:76
@ OFZIPArchiveEntryAttributeCompatibilityMacintosh
Definition OFZIPArchiveEntry.h:58
@ OFZIPArchiveEntryAttributeCompatibilityMSDOS
Definition OFZIPArchiveEntry.h:44
@ OFZIPArchiveEntryAttributeCompatibilityMVS
Definition OFZIPArchiveEntry.h:66
@ OFZIPArchiveEntryAttributeCompatibilityCPM
Definition OFZIPArchiveEntry.h:62
@ OFZIPArchiveEntryAttributeCompatibilityVFAT
Definition OFZIPArchiveEntry.h:72
@ OFZIPArchiveEntryAttributeCompatibilityAlternateMVS
Definition OFZIPArchiveEntry.h:74
@ OFZIPArchiveEntryAttributeCompatibilityVSE
Definition OFZIPArchiveEntry.h:68
@ OFZIPArchiveEntryAttributeCompatibilityUNIX
Definition OFZIPArchiveEntry.h:50
@ OFZIPArchiveEntryAttributeCompatibilityOS2HPFS
Definition OFZIPArchiveEntry.h:56
@ OFZIPArchiveEntryAttributeCompatibilityOSX
Definition OFZIPArchiveEntry.h:82
@ OFZIPArchiveEntryAttributeCompatibilityVM_CMS
Definition OFZIPArchiveEntry.h:52
@ OFZIPArchiveEntryAttributeCompatibilityTandem
Definition OFZIPArchiveEntry.h:78
@ OFZIPArchiveEntryAttributeCompatibilityZSystem
Definition OFZIPArchiveEntry.h:60
@ OFZIPArchiveEntryAttributeCompatibilityAmiga
Definition OFZIPArchiveEntry.h:46
OFString * OFZIPArchiveEntryCompressionMethodName(OFZIPArchiveEntryCompressionMethod compressionMethod)
Converts the ZIP entry compression method to a string.
Definition OFZIPArchiveEntry.m:108
OFZIPArchiveEntryExtraFieldTag
Tags for the extra field.
Definition OFZIPArchiveEntry.h:88
@ OFZIPArchiveEntryExtraFieldTagZIP64
Definition OFZIPArchiveEntry.h:90
size_t OFZIPArchiveEntryExtraFieldFind(OFData *extraField, OFZIPArchiveEntryExtraFieldTag tag, uint16_t *size)
Gets a pointer to and the size of the extensible data field with the specified tag.
Definition OFZIPArchiveEntry.m:144
OFString * OFZIPArchiveEntryVersionToString(uint16_t version)
Converts the ZIP entry version to a string.
Definition OFZIPArchiveEntry.m:30
A class for storing arbitrary data in an array.
Definition OFData.h:42
A class for storing, accessing and comparing dates.
Definition OFDate.h:30
A class which provides methods to read and write files.
Definition OFFile.h:37
The root class for all other classes inside ObjFW.
Definition OFObject.h:688
A class for handling strings.
Definition OFString.h:135
A class which represents an entry in the central directory of a ZIP archive.
Definition OFZIPArchiveEntry.h:107
A class which represents an entry in an archive.
Definition OFArchiveEntry.h:29
A protocol for the creation of copies.
Definition OFObject.h:1346
A protocol for the creation of mutable copies.
Definition OFObject.h:1367