1 | /* This file is part of the KDE libraries |
2 | SPDX-FileCopyrightText: 2002 Holger Schroeder <holger-kde@holgis.net> |
3 | |
4 | SPDX-License-Identifier: LGPL-2.0-or-later |
5 | */ |
6 | |
7 | #ifndef KZIPFILEENTRY_H |
8 | #define KZIPFILEENTRY_H |
9 | |
10 | #include "karchive.h" |
11 | |
12 | class KZip; |
13 | /** |
14 | * @class KZipFileEntry kzipfileentry.h KZipFileEntry |
15 | * |
16 | * A KZipFileEntry represents a file in a zip archive. |
17 | */ |
18 | class KARCHIVE_EXPORT KZipFileEntry : public KArchiveFile |
19 | { |
20 | public: |
21 | /** |
22 | * Creates a new zip file entry. Do not call this, KZip takes care of it. |
23 | */ |
24 | KZipFileEntry(KZip *zip, |
25 | const QString &name, |
26 | int access, |
27 | const QDateTime &date, |
28 | const QString &user, |
29 | const QString &group, |
30 | const QString &symlink, |
31 | const QString &path, |
32 | qint64 start, |
33 | qint64 uncompressedSize, |
34 | int encoding, |
35 | qint64 compressedSize); |
36 | |
37 | /** |
38 | * Destructor. Do not call this. |
39 | */ |
40 | ~KZipFileEntry() override; |
41 | |
42 | int encoding() const; |
43 | qint64 compressedSize() const; |
44 | |
45 | /// Only used when writing |
46 | void setCompressedSize(qint64 compressedSize); |
47 | |
48 | /// Header start: only used when writing |
49 | void (qint64 ); |
50 | qint64 () const; |
51 | |
52 | /// CRC: only used when writing |
53 | unsigned long crc32() const; |
54 | void setCRC32(unsigned long crc32); |
55 | |
56 | /// Name with complete path - KArchiveFile::name() is the filename only (no path) |
57 | const QString &path() const; |
58 | |
59 | /** |
60 | * @return the content of this file. |
61 | * Call data() with care (only once per file), this data isn't cached. |
62 | */ |
63 | QByteArray data() const override; |
64 | |
65 | /** |
66 | * This method returns a QIODevice to read the file contents. |
67 | * This is obviously for reading only. |
68 | * Note that the ownership of the device is being transferred to the caller, |
69 | * who will have to delete it. |
70 | * The returned device auto-opens (in readonly mode), no need to open it. |
71 | */ |
72 | QIODevice *createDevice() const override; |
73 | |
74 | private: |
75 | class KZipFileEntryPrivate; |
76 | KZipFileEntryPrivate *const d; |
77 | }; |
78 | |
79 | #endif |
80 | |