Mercurial > vba-linux
view src/win32/7zip/7z/CPP/7zip/Archive/Tar/TarItem.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 // Archive/Tar/Item.h3 #ifndef __ARCHIVE_TAR_ITEM_H4 #define __ARCHIVE_TAR_ITEM_H6 #include "Common/Types.h"7 #include "Common/MyString.h"9 #include "../Common/ItemNameUtils.h"10 #include "TarHeader.h"12 namespace NArchive {13 namespace NTar {15 struct CItem16 {17 AString Name;18 UInt64 Size;20 UInt32 Mode;21 UInt32 UID;22 UInt32 GID;23 UInt32 MTime;24 UInt32 DeviceMajor;25 UInt32 DeviceMinor;27 AString LinkName;28 AString UserName;29 AString GroupName;31 char Magic[8];32 char LinkFlag;33 bool DeviceMajorDefined;34 bool DeviceMinorDefined;36 bool IsDir() const37 {38 switch(LinkFlag)39 {40 case NFileHeader::NLinkFlag::kDirectory:41 case NFileHeader::NLinkFlag::kDumpDir:42 return true;43 case NFileHeader::NLinkFlag::kOldNormal:44 case NFileHeader::NLinkFlag::kNormal:45 return NItemName::HasTailSlash(Name, CP_OEMCP);46 }47 return false;48 }50 bool IsMagic() const51 {52 for (int i = 0; i < 5; i++)53 if (Magic[i] != NFileHeader::NMagic::kUsTar[i])54 return false;55 return true;56 }58 UInt64 GetPackSize() const { return (Size + 0x1FF) & (~((UInt64)0x1FF)); }59 };61 struct CItemEx: public CItem62 {63 UInt64 HeaderPosition;64 unsigned LongLinkSize;65 UInt64 GetDataPosition() const { return HeaderPosition + LongLinkSize + NFileHeader::kRecordSize; }66 UInt64 GetFullSize() const { return LongLinkSize + NFileHeader::kRecordSize + Size; }67 };69 }}71 #endif