Mercurial > vba-linux
diff 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 diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/win32/7zip/7z/CPP/7zip/Archive/Tar/TarItem.h Sat Mar 03 10:31:27 2012 -0600 1.3 @@ -0,0 +1,71 @@ 1.4 +// Archive/Tar/Item.h 1.5 + 1.6 +#ifndef __ARCHIVE_TAR_ITEM_H 1.7 +#define __ARCHIVE_TAR_ITEM_H 1.8 + 1.9 +#include "Common/Types.h" 1.10 +#include "Common/MyString.h" 1.11 + 1.12 +#include "../Common/ItemNameUtils.h" 1.13 +#include "TarHeader.h" 1.14 + 1.15 +namespace NArchive { 1.16 +namespace NTar { 1.17 + 1.18 +struct CItem 1.19 +{ 1.20 + AString Name; 1.21 + UInt64 Size; 1.22 + 1.23 + UInt32 Mode; 1.24 + UInt32 UID; 1.25 + UInt32 GID; 1.26 + UInt32 MTime; 1.27 + UInt32 DeviceMajor; 1.28 + UInt32 DeviceMinor; 1.29 + 1.30 + AString LinkName; 1.31 + AString UserName; 1.32 + AString GroupName; 1.33 + 1.34 + char Magic[8]; 1.35 + char LinkFlag; 1.36 + bool DeviceMajorDefined; 1.37 + bool DeviceMinorDefined; 1.38 + 1.39 + bool IsDir() const 1.40 + { 1.41 + switch(LinkFlag) 1.42 + { 1.43 + case NFileHeader::NLinkFlag::kDirectory: 1.44 + case NFileHeader::NLinkFlag::kDumpDir: 1.45 + return true; 1.46 + case NFileHeader::NLinkFlag::kOldNormal: 1.47 + case NFileHeader::NLinkFlag::kNormal: 1.48 + return NItemName::HasTailSlash(Name, CP_OEMCP); 1.49 + } 1.50 + return false; 1.51 + } 1.52 + 1.53 + bool IsMagic() const 1.54 + { 1.55 + for (int i = 0; i < 5; i++) 1.56 + if (Magic[i] != NFileHeader::NMagic::kUsTar[i]) 1.57 + return false; 1.58 + return true; 1.59 + } 1.60 + 1.61 + UInt64 GetPackSize() const { return (Size + 0x1FF) & (~((UInt64)0x1FF)); } 1.62 +}; 1.63 + 1.64 +struct CItemEx: public CItem 1.65 +{ 1.66 + UInt64 HeaderPosition; 1.67 + unsigned LongLinkSize; 1.68 + UInt64 GetDataPosition() const { return HeaderPosition + LongLinkSize + NFileHeader::kRecordSize; } 1.69 + UInt64 GetFullSize() const { return LongLinkSize + NFileHeader::kRecordSize + Size; } 1.70 +}; 1.71 + 1.72 +}} 1.73 + 1.74 +#endif