Source code

Revision control

Copy as Markdown

Other Tools

// 7z/7zHeader.h↩
#ifndef __7Z_HEADER_H↩
#define __7Z_HEADER_H↩
#include "../../../Common/MyTypes.h"
namespace NArchive {↩
namespace N7z {↩
const unsigned kSignatureSize = 6;↩
extern Byte kSignature[kSignatureSize];↩
// #define _7Z_VOL↩
// 7z-MultiVolume is not finished yet.↩
// It can work already, but I still do not like some↩
// things of that new multivolume format.↩
// So please keep it commented.↩
#ifdef _7Z_VOL↩
extern Byte kFinishSignature[kSignatureSize];↩
#endif
struct CArchiveVersion↩
{↩
Byte Major;↩
Byte Minor;↩
};↩
const Byte kMajorVersion = 0;↩
struct CStartHeader↩
{↩
UInt64 NextHeaderOffset;↩
UInt64 NextHeaderSize;↩
UInt32 NextHeaderCRC;↩
};↩
const UInt32 kStartHeaderSize = 20;↩
#ifdef _7Z_VOL↩
struct CFinishHeader: public CStartHeader↩
{↩
UInt64 ArchiveStartOffset; // data offset from end if that struct↩
UInt64 AdditionalStartBlockSize; // start signature & start header size↩
};↩
const UInt32 kFinishHeaderSize = kStartHeaderSize + 16;↩
#endif
namespace NID↩
{↩
enum EEnum↩
{↩
kEnd,↩
kHeader,↩
kArchiveProperties,↩
kAdditionalStreamsInfo,↩
kMainStreamsInfo,↩
kFilesInfo,↩
kPackInfo,↩
kUnpackInfo,↩
kSubStreamsInfo,↩
kSize,↩
kCRC,↩
kFolder,↩
kCodersUnpackSize,↩
kNumUnpackStream,↩
kEmptyStream,↩
kEmptyFile,↩
kAnti,↩
kName,↩
kCTime,↩
kATime,↩
kMTime,↩
kWinAttrib,↩
kComment,↩
kEncodedHeader,↩
kStartPos,↩
kDummy↩
// kNtSecure,↩
// kParent,↩
// kIsAux↩
};↩
}↩
const UInt32 k_Copy = 0;↩
const UInt32 k_Delta = 3;↩
const UInt32 k_LZMA2 = 0x21;↩
const UInt32 k_SWAP2 = 0x20302;↩
const UInt32 k_SWAP4 = 0x20304;↩
const UInt32 k_LZMA = 0x30101;↩
const UInt32 k_PPMD = 0x30401;↩
const UInt32 k_Deflate = 0x40108;↩
const UInt32 k_BZip2 = 0x40202;↩
const UInt32 k_BCJ = 0x3030103;↩
const UInt32 k_BCJ2 = 0x303011B;↩
const UInt32 k_PPC = 0x3030205;↩
const UInt32 k_IA64 = 0x3030401;↩
const UInt32 k_ARM = 0x3030501;↩
const UInt32 k_ARMT = 0x3030701;↩
const UInt32 k_SPARC = 0x3030805;↩
const UInt32 k_AES = 0x6F10701;↩
static inline bool IsFilterMethod(UInt64 m)↩
{↩
if (m > (UInt64)0xFFFFFFFF)↩
return false;↩
switch ((UInt32)m)↩
{↩
case k_Delta:↩
case k_BCJ:↩
case k_BCJ2:↩
case k_PPC:↩
case k_IA64:↩
case k_ARM:↩
case k_ARMT:↩
case k_SPARC:↩
case k_SWAP2:↩
case k_SWAP4:↩
return true;↩
}↩
return false;↩
}↩
}}↩
#endif