FFSM++  1.1.0
French Forest Sector Model ++
zip_p.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Filename: zip_p.h
3 ** Last updated [dd/mm/yyyy]: 28/01/2007
4 **
5 ** pkzip 2.0 file compression.
6 **
7 ** Some of the code has been inspired by other open source projects,
8 ** (mainly Info-Zip and Gilles Vollant's minizip).
9 ** Compression and decompression actually uses the zlib library.
10 **
11 ** Copyright (C) 2007 Angius Fabrizio. All rights reserved.
12 **
13 ** This file is part of the OSDaB project (http://osdab.sourceforge.net/).
14 **
15 ** This file may be distributed and/or modified under the terms of the
16 ** GNU General Public License version 2 as published by the Free Software
17 ** Foundation and appearing in the file LICENSE.GPL included in the
18 ** packaging of this file.
19 **
20 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
21 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
22 **
23 ** See the file LICENSE.GPL that came with this software distribution or
24 ** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information.
25 **
26 **********************************************************************/
27 
28 //
29 // W A R N I N G
30 // -------------
31 //
32 // This file is not part of the Zip/UnZip API. It exists purely as an
33 // implementation detail. This header file may change from version to
34 // version without notice, or even be removed.
35 //
36 // We mean it.
37 //
38 
39 #ifndef OSDAB_ZIP_P__H
40 #define OSDAB_ZIP_P__H
41 
42 #include "zip.h"
43 #include "zipentry_p.h"
44 
45 #include <QtGlobal>
46 #include <QFileInfo>
47 
48 /*!
49  zLib authors suggest using larger buffers (128K or 256K) for (de)compression (especially for inflate())
50  we use a 256K buffer here - if you want to use this code on a pre-iceage mainframe please change it ;)
51 */
52 #define ZIP_READ_BUFFER (256*1024)
53 
55 {
56 public:
57  ZipPrivate();
58  virtual ~ZipPrivate();
59 
60  QMap<QString,ZipEntryP*>* headers;
61 
62  QIODevice* device;
63 
66 
67  unsigned char* uBuffer;
68 
69  const quint32* crcTable;
70 
71  QString comment;
72  QString password;
73 
74  Zip::ErrorCode createArchive(QIODevice* device);
76  void reset();
77 
78  bool zLibInit();
79 
80  Zip::ErrorCode createEntry(const QFileInfo& file, const QString& root, Zip::CompressionLevel level);
82 
83  inline void encryptBytes(quint32* keys, char* buffer, qint64 read);
84 
85  inline void setULong(quint32 v, char* buffer, unsigned int offset);
86  inline void updateKeys(quint32* keys, int c) const;
87  inline void initKeys(quint32* keys) const;
88  inline int decryptByte(quint32 key2) const;
89 
90  inline QString extractRoot(const QString& p);
91 };
92 
93 #endif // OSDAB_ZIP_P__H
unsigned char * uBuffer
Definition: zip_p.h:67
#define ZIP_READ_BUFFER
Definition: zip_p.h:52
ZipPrivate()
Definition: zip.cpp:500
void initKeys(quint32 *keys) const
Definition: zip.cpp:939
void updateKeys(quint32 *keys, int c) const
Definition: zip.cpp:957
Zip::ErrorCode createEntry(const QFileInfo &file, const QString &root, Zip::CompressionLevel level)
Definition: zip.cpp:541
char buffer2[ZIP_READ_BUFFER]
Definition: zip_p.h:65
QString comment
Definition: zip_p.h:71
Zip::ErrorCode createArchive(QIODevice *device)
Definition: zip.cpp:517
QIODevice * device
Definition: zip_p.h:62
QString password
Definition: zip_p.h:72
ErrorCode
Definition: zip.h:48
QString extractRoot(const QString &p)
Definition: zip.cpp:1213
const quint32 * crcTable
Definition: zip_p.h:69
Zip::CompressionLevel detectCompressionByMime(const QString &ext)
Definition: zip.cpp:979
CompressionLevel
Definition: zip.h:62
virtual ~ZipPrivate()
Definition: zip.cpp:511
void reset()
Definition: zip.cpp:1198
void encryptBytes(quint32 *keys, char *buffer, qint64 read)
Definition: zip.cpp:966
int decryptByte(quint32 key2) const
Definition: zip.cpp:923
char buffer1[ZIP_READ_BUFFER]
Definition: zip_p.h:64
QMap< QString, ZipEntryP * > * headers
Definition: zip_p.h:60
Zip::ErrorCode closeArchive()
Definition: zip.cpp:1014
void setULong(quint32 v, char *buffer, unsigned int offset)
Definition: zip.cpp:930
bool zLibInit()