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