view src/win32/7zip/7z/CPP/7zip/Archive/7z/7zHeader.h @ 1:f9f4f1b99eed

importing src directory
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 10:31:27 -0600
parents
children
line wrap: on
line source
1 // 7z/7zHeader.h
3 #ifndef __7Z_HEADER_H
4 #define __7Z_HEADER_H
6 #include "../../../Common/Types.h"
8 namespace NArchive {
9 namespace N7z {
11 const int kSignatureSize = 6;
12 extern Byte kSignature[kSignatureSize];
14 // #define _7Z_VOL
15 // 7z-MultiVolume is not finished yet.
16 // It can work already, but I still do not like some
17 // things of that new multivolume format.
18 // So please keep it commented.
20 #ifdef _7Z_VOL
21 extern Byte kFinishSignature[kSignatureSize];
22 #endif
24 struct CArchiveVersion
25 {
26 Byte Major;
27 Byte Minor;
28 };
30 const Byte kMajorVersion = 0;
32 struct CStartHeader
33 {
34 UInt64 NextHeaderOffset;
35 UInt64 NextHeaderSize;
36 UInt32 NextHeaderCRC;
37 };
39 const UInt32 kStartHeaderSize = 20;
41 #ifdef _7Z_VOL
42 struct CFinishHeader: public CStartHeader
43 {
44 UInt64 ArchiveStartOffset; // data offset from end if that struct
45 UInt64 AdditionalStartBlockSize; // start signature & start header size
46 };
48 const UInt32 kFinishHeaderSize = kStartHeaderSize + 16;
49 #endif
51 namespace NID
52 {
53 enum EEnum
54 {
55 kEnd,
57 kHeader,
59 kArchiveProperties,
61 kAdditionalStreamsInfo,
62 kMainStreamsInfo,
63 kFilesInfo,
65 kPackInfo,
66 kUnpackInfo,
67 kSubStreamsInfo,
69 kSize,
70 kCRC,
72 kFolder,
74 kCodersUnpackSize,
75 kNumUnpackStream,
77 kEmptyStream,
78 kEmptyFile,
79 kAnti,
81 kName,
82 kCTime,
83 kATime,
84 kMTime,
85 kWinAttributes,
86 kComment,
88 kEncodedHeader,
90 kStartPos,
91 kDummy
92 };
93 }
95 }}
97 #endif