Zip Code Internals [Zip Code]
Collaboration diagram for Zip Code Internals:
Detailed Description
The zip code internals are mostly undocumented, but should be fairly obvious to anyone who is familiar with the zip file format.
|
Classes |
class | Zip::CentralDir |
class | Zip::EndOfCentralDir |
class | Zip::Compressor |
class | Zip::ExtraField |
class | Zip::FileHeader |
class | Zip::ZipStatFilter |
| Helper class for tracking CRC and uncompressed size. More...
|
class | Zip::ZipTempStream |
Defines |
#define | ImplementCompressor(name, method) |
#define | CompressorCreateReadStream(name) Stream * Compressor##name::createReadStream(const CentralDir *cdir, Stream *zipStream) |
#define | CompressorCreateWriteStream(name) Stream * Compressor##name::createWriteStream(const CentralDir *cdir, Stream *zipStream) |
#define | DeclareExtraField(name) name(U16 id, ExtraFieldCreateFn fnCreate) : Parent(id, fnCreate) {} |
#define | ImplementExtraField(name, id) name gExtraField##name##instance(id, &createExtraField<name>); |
Typedefs |
typedef ExtraField *(*) | Zip::ExtraFieldCreateFn () |
Enumerations |
enum | Zip::CDIntFlags {
Zip::CDFileDirty = BIT(0),
Zip::CDFileAdded = BIT(1),
Zip::CDFileDeleted = BIT(2),
Zip::CDFileOpen = BIT(3)
} |
| Internal flags used by the zip code when writing zips. More...
|
enum | Zip::CompressionMethod {
Zip::Stored = 0,
Zip::Shrunk = 1,
Zip::ReducedL1 = 2,
Zip::ReducedL2 = 3,
Zip::ReducedL3 = 4,
Zip::ReducedL4 = 5,
Zip::Imploded = 6,
Zip::ReservedTokenized = 7,
Zip::Deflated = 8,
Zip::EnhDefalted = 9,
Zip::DateCompression = 10,
Zip::ReservedPKWARE = 11,
Zip::BZip2 = 12,
Zip::PPMd = 98,
Zip::AESEncrypted = 99
} |
enum | Zip::FileFlags {
Zip::Encrypted = BIT(0),
Zip::Implode8KDictionary = BIT(1),
Zip::Implode3ShannonFanoTrees = BIT(2),
Zip::DeflateTypeMask = BIT(1) | BIT(2),
Zip::FileInfoInDirectory = BIT(3),
Zip::ReservedEnhDeflate = BIT(4),
Zip::PatchData = BIT(5),
Zip::StrongEncryption = BIT(6),
Zip::UnusedReserved1 = BIT(7),
Zip::UnusedReserved2 = BIT(8),
Zip::UnusedReserved3 = BIT(9),
Zip::UnusedReserved4 = BIT(10),
Zip::UnusedReserved5 = BIT(11),
Zip::ReservedPKWARE1 = BIT(12),
Zip::EncryptedDirectory = BIT(13),
Zip::ReservedPKWARE2 = BIT(14),
Zip::ReservedPKWARE3 = BIT(15)
} |
Functions |
template<class T> |
ExtraField * | Zip::createExtraField () |
Define Documentation
#define ImplementCompressor |
( |
name, |
|
|
method |
|
) |
|
Value: class Compressor##name : public Compressor \
{ \
public: \
Compressor##name(S32 m, const char *n) : Compressor(m, n) {} \
virtual Stream *createReadStream(const CentralDir *cdir, Stream *zipStream); \
virtual Stream *createWriteStream(const CentralDir *cdir, Stream *zipStream); \
}; \
Compressor##name gCompressor##name##instance(method, #name);
#define CompressorCreateReadStream |
( |
name |
|
) |
Stream * Compressor##name::createReadStream(const CentralDir *cdir, Stream *zipStream) |
#define CompressorCreateWriteStream |
( |
name |
|
) |
Stream * Compressor##name::createWriteStream(const CentralDir *cdir, Stream *zipStream) |
#define ImplementExtraField |
( |
name, |
|
|
id |
|
) |
name gExtraField##name##instance(id, &createExtraField<name>); |
Typedef Documentation
Enumeration Type Documentation
Internal flags used by the zip code when writing zips.
- Enumerator:
-
CDFileDirty |
|
CDFileAdded |
|
CDFileDeleted |
|
CDFileOpen |
|
- Enumerator:
-
Stored |
|
Shrunk |
|
ReducedL1 |
|
ReducedL2 |
|
ReducedL3 |
|
ReducedL4 |
|
Imploded |
|
ReservedTokenized |
|
Deflated |
|
EnhDefalted |
|
DateCompression |
|
ReservedPKWARE |
|
BZip2 |
|
PPMd |
|
AESEncrypted |
|
- Enumerator:
-
Encrypted |
|
Implode8KDictionary |
|
Implode3ShannonFanoTrees |
|
DeflateTypeMask |
|
FileInfoInDirectory |
|
ReservedEnhDeflate |
|
PatchData |
|
StrongEncryption |
|
UnusedReserved1 |
|
UnusedReserved2 |
|
UnusedReserved3 |
|
UnusedReserved4 |
|
UnusedReserved5 |
|
ReservedPKWARE1 |
|
EncryptedDirectory |
|
ReservedPKWARE2 |
|
ReservedPKWARE3 |
|
Function Documentation
template<class T>
ExtraField* Zip::createExtraField |
( |
|
) |
|
|