Home | History | Annotate | Download | only in 7z
      1 // 7z/7zHeader.h
      2 
      3 #ifndef __7Z_HEADER_H
      4 #define __7Z_HEADER_H
      5 
      6 #include "../../../Common/Types.h"
      7 
      8 namespace NArchive {
      9 namespace N7z {
     10 
     11 const int kSignatureSize = 6;
     12 extern Byte kSignature[kSignatureSize];
     13 
     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.
     19 
     20 #ifdef _7Z_VOL
     21 extern Byte kFinishSignature[kSignatureSize];
     22 #endif
     23 
     24 struct CArchiveVersion
     25 {
     26   Byte Major;
     27   Byte Minor;
     28 };
     29 
     30 const Byte kMajorVersion = 0;
     31 
     32 struct CStartHeader
     33 {
     34   UInt64 NextHeaderOffset;
     35   UInt64 NextHeaderSize;
     36   UInt32 NextHeaderCRC;
     37 };
     38 
     39 const UInt32 kStartHeaderSize = 20;
     40 
     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 };
     47 
     48 const UInt32 kFinishHeaderSize = kStartHeaderSize + 16;
     49 #endif
     50 
     51 namespace NID
     52 {
     53   enum EEnum
     54   {
     55     kEnd,
     56 
     57     kHeader,
     58 
     59     kArchiveProperties,
     60 
     61     kAdditionalStreamsInfo,
     62     kMainStreamsInfo,
     63     kFilesInfo,
     64 
     65     kPackInfo,
     66     kUnpackInfo,
     67     kSubStreamsInfo,
     68 
     69     kSize,
     70     kCRC,
     71 
     72     kFolder,
     73 
     74     kCodersUnpackSize,
     75     kNumUnpackStream,
     76 
     77     kEmptyStream,
     78     kEmptyFile,
     79     kAnti,
     80 
     81     kName,
     82     kCTime,
     83     kATime,
     84     kMTime,
     85     kWinAttributes,
     86     kComment,
     87 
     88     kEncodedHeader,
     89 
     90     kStartPos,
     91     kDummy
     92   };
     93 }
     94 
     95 }}
     96 
     97 #endif
     98