mirror of
https://github.com/pocoproject/poco.git
synced 2025-01-08 11:02:17 +01:00
105 lines
1.8 KiB
C++
105 lines
1.8 KiB
C++
//
|
|
// ZipCommon.h
|
|
//
|
|
// Library: Zip
|
|
// Package: Zip
|
|
// Module: ZipCommon
|
|
//
|
|
// Definition of the ZipCommon class.
|
|
//
|
|
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
|
|
// and Contributors.
|
|
//
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
//
|
|
|
|
|
|
#ifndef Zip_ZipCommon_INCLUDED
|
|
#define Zip_ZipCommon_INCLUDED
|
|
|
|
|
|
#include "Poco/Zip/Zip.h"
|
|
|
|
|
|
namespace Poco {
|
|
namespace Zip {
|
|
|
|
|
|
class Zip_API ZipCommon
|
|
/// Common enums used in the Zip project
|
|
{
|
|
public:
|
|
enum
|
|
{
|
|
HEADER_SIZE = 4
|
|
};
|
|
|
|
static const Poco::UInt16 ZIP64_EXTRA_ID = 0x1; // Extra data id tag for Zip64 data (in extension for ZipLocalFileHeader and ZipFileInfo)
|
|
static const Poco::UInt16 ZIP64_MAGIC_SHORT = 0xFFFF;
|
|
static const Poco::UInt32 ZIP64_MAGIC = 0xFFFFFFFF;
|
|
|
|
enum CompressionMethod
|
|
{
|
|
CM_STORE = 0,
|
|
CM_SHRUNK = 1,
|
|
CM_FACTOR1 = 2,
|
|
CM_FACTOR2 = 3,
|
|
CM_FACTOR3 = 4,
|
|
CM_FACTOR4 = 5,
|
|
CM_IMPLODE = 6,
|
|
CM_TOKENIZE= 7,
|
|
CM_DEFLATE = 8,
|
|
CM_ENHANCEDDEFLATE = 9,
|
|
CM_DATECOMPRIMPLODING = 10,
|
|
CM_UNUSED = 11,
|
|
CM_AUTO = 255 /// automatically select DM_DEFLATE or CM_STORE based on file type (extension)
|
|
};
|
|
|
|
enum CompressionLevel
|
|
{
|
|
CL_NORMAL = 0,
|
|
CL_MAXIMUM = 1,
|
|
CL_FAST = 2,
|
|
CL_SUPERFAST = 3
|
|
};
|
|
|
|
enum HostSystem
|
|
{
|
|
HS_FAT = 0, // + PKZIPW 2.50 VFAT, NTFS
|
|
HS_AMIGA = 1,
|
|
HS_VMS = 2,
|
|
HS_UNIX = 3,
|
|
HS_VM_CMS = 4,
|
|
HS_ATARI = 5,
|
|
HS_HPFS = 6,
|
|
HS_MACINTOSH = 7,
|
|
HS_ZSYSTEM = 8,
|
|
HS_CP_M = 9,
|
|
HS_TOPS20 = 10, // used by pkzip2.5 to indicate ntfs
|
|
HS_NTFS = 11,
|
|
HS_SMS_QDOS = 12,
|
|
HS_ACORN = 13,
|
|
HS_VFAT = 14,
|
|
HS_MVS = 15,
|
|
HS_BEOS = 16,
|
|
HS_TANDEM = 17,
|
|
HS_UNUSED = 18
|
|
};
|
|
|
|
enum FileType
|
|
{
|
|
FT_BINARY= 0,
|
|
FT_ASCII = 1
|
|
};
|
|
|
|
static bool isValidPath(const std::string& path);
|
|
/// Checks whether the given path is valid (does
|
|
/// not contain ".." path segments).
|
|
};
|
|
|
|
|
|
} } // namespace Poco::Zip
|
|
|
|
|
|
#endif // Zip_ZipCommon_INCLUDED
|