Mercurial > vba-linux
annotate src/win32/7zip/7z/CPP/7zip/Archive/Rar/RarItem.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
rev | line source |
---|---|
rlm@1 | 1 // RarItem.h |
rlm@1 | 2 |
rlm@1 | 3 #ifndef __ARCHIVE_RAR_ITEM_H |
rlm@1 | 4 #define __ARCHIVE_RAR_ITEM_H |
rlm@1 | 5 |
rlm@1 | 6 #include "Common/Types.h" |
rlm@1 | 7 #include "Common/MyString.h" |
rlm@1 | 8 |
rlm@1 | 9 #include "RarHeader.h" |
rlm@1 | 10 |
rlm@1 | 11 namespace NArchive{ |
rlm@1 | 12 namespace NRar{ |
rlm@1 | 13 |
rlm@1 | 14 struct CRarTime |
rlm@1 | 15 { |
rlm@1 | 16 UInt32 DosTime; |
rlm@1 | 17 Byte LowSecond; |
rlm@1 | 18 Byte SubTime[3]; |
rlm@1 | 19 }; |
rlm@1 | 20 |
rlm@1 | 21 struct CItem |
rlm@1 | 22 { |
rlm@1 | 23 UInt64 Size; |
rlm@1 | 24 UInt64 PackSize; |
rlm@1 | 25 |
rlm@1 | 26 CRarTime CTime; |
rlm@1 | 27 CRarTime ATime; |
rlm@1 | 28 CRarTime MTime; |
rlm@1 | 29 |
rlm@1 | 30 UInt32 FileCRC; |
rlm@1 | 31 UInt32 Attrib; |
rlm@1 | 32 |
rlm@1 | 33 UInt16 Flags; |
rlm@1 | 34 Byte HostOS; |
rlm@1 | 35 Byte UnPackVersion; |
rlm@1 | 36 Byte Method; |
rlm@1 | 37 |
rlm@1 | 38 bool CTimeDefined; |
rlm@1 | 39 bool ATimeDefined; |
rlm@1 | 40 |
rlm@1 | 41 AString Name; |
rlm@1 | 42 UString UnicodeName; |
rlm@1 | 43 |
rlm@1 | 44 Byte Salt[8]; |
rlm@1 | 45 |
rlm@1 | 46 bool IsEncrypted() const { return (Flags & NHeader::NFile::kEncrypted) != 0; } |
rlm@1 | 47 bool IsSolid() const { return (Flags & NHeader::NFile::kSolid) != 0; } |
rlm@1 | 48 bool IsCommented() const { return (Flags & NHeader::NFile::kComment) != 0; } |
rlm@1 | 49 bool IsSplitBefore() const { return (Flags & NHeader::NFile::kSplitBefore) != 0; } |
rlm@1 | 50 bool IsSplitAfter() const { return (Flags & NHeader::NFile::kSplitAfter) != 0; } |
rlm@1 | 51 bool HasSalt() const { return (Flags & NHeader::NFile::kSalt) != 0; } |
rlm@1 | 52 bool HasExtTime() const { return (Flags & NHeader::NFile::kExtTime) != 0; } |
rlm@1 | 53 bool HasUnicodeName()const { return (Flags & NHeader::NFile::kUnicodeName) != 0; } |
rlm@1 | 54 bool IsOldVersion() const { return (Flags & NHeader::NFile::kOldVersion) != 0; } |
rlm@1 | 55 |
rlm@1 | 56 UInt32 GetDictSize() const { return (Flags >> NHeader::NFile::kDictBitStart) & NHeader::NFile::kDictMask; } |
rlm@1 | 57 bool IsDir() const; |
rlm@1 | 58 bool IgnoreItem() const; |
rlm@1 | 59 UInt32 GetWinAttributes() const; |
rlm@1 | 60 |
rlm@1 | 61 CItem(): CTimeDefined(false), ATimeDefined(false) {} |
rlm@1 | 62 }; |
rlm@1 | 63 |
rlm@1 | 64 class CItemEx: public CItem |
rlm@1 | 65 { |
rlm@1 | 66 public: |
rlm@1 | 67 UInt64 Position; |
rlm@1 | 68 UInt16 MainPartSize; |
rlm@1 | 69 UInt16 CommentSize; |
rlm@1 | 70 UInt16 AlignSize; |
rlm@1 | 71 UInt64 GetFullSize() const { return MainPartSize + CommentSize + AlignSize + PackSize; }; |
rlm@1 | 72 // DWORD GetHeaderWithCommentSize() const { return MainPartSize + CommentSize; }; |
rlm@1 | 73 UInt64 GetCommentPosition() const { return Position + MainPartSize; }; |
rlm@1 | 74 UInt64 GetDataPosition() const { return GetCommentPosition() + CommentSize + AlignSize; }; |
rlm@1 | 75 }; |
rlm@1 | 76 |
rlm@1 | 77 }} |
rlm@1 | 78 |
rlm@1 | 79 #endif |