rlm@1: // Archive/ZipItemEx.h rlm@1: rlm@1: #ifndef __ARCHIVE_ZIP_ITEMEX_H rlm@1: #define __ARCHIVE_ZIP_ITEMEX_H rlm@1: rlm@1: #include "ZipHeader.h" rlm@1: #include "ZipItem.h" rlm@1: rlm@1: namespace NArchive { rlm@1: namespace NZip { rlm@1: rlm@1: class CItemEx: public CItem rlm@1: { rlm@1: public: rlm@1: UInt32 FileHeaderWithNameSize; rlm@1: UInt16 LocalExtraSize; rlm@1: rlm@1: UInt64 GetLocalFullSize() const rlm@1: { return FileHeaderWithNameSize + LocalExtraSize + PackSize + rlm@1: (HasDescriptor() ? NFileHeader::kDataDescriptorSize : 0); }; rlm@1: /* rlm@1: UInt64 GetLocalFullSize(bool isZip64) const rlm@1: { return FileHeaderWithNameSize + LocalExtraSize + PackSize + rlm@1: (HasDescriptor() ? (isZip64 ? NFileHeader::kDataDescriptor64Size : NFileHeader::kDataDescriptorSize) : 0); }; rlm@1: */ rlm@1: UInt64 GetLocalExtraPosition() const rlm@1: { return LocalHeaderPosition + FileHeaderWithNameSize; }; rlm@1: UInt64 GetDataPosition() const rlm@1: { return GetLocalExtraPosition() + LocalExtraSize; }; rlm@1: }; rlm@1: rlm@1: }} rlm@1: rlm@1: #endif