annotate src/win32/7zip/7z/CPP/7zip/Archive/GZip/GZipItem.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 // Archive/GZipItem.h
rlm@1 2
rlm@1 3 #ifndef __ARCHIVE_GZIP_ITEM_H
rlm@1 4 #define __ARCHIVE_GZIP_ITEM_H
rlm@1 5
rlm@1 6 #include "Common/Types.h"
rlm@1 7 #include "Common/MyString.h"
rlm@1 8 #include "Common/Buffer.h"
rlm@1 9
rlm@1 10 namespace NArchive {
rlm@1 11 namespace NGZip {
rlm@1 12
rlm@1 13 class CItem
rlm@1 14 {
rlm@1 15 private:
rlm@1 16 bool TestFlag(Byte flag) const { return ((Flags & flag) != 0); }
rlm@1 17 public:
rlm@1 18 Byte CompressionMethod;
rlm@1 19 Byte Flags;
rlm@1 20 UInt32 Time;
rlm@1 21 Byte ExtraFlags;
rlm@1 22 Byte HostOS;
rlm@1 23 UInt32 FileCRC;
rlm@1 24 UInt32 UnPackSize32;
rlm@1 25
rlm@1 26 AString Name;
rlm@1 27 AString Comment;
rlm@1 28 CByteBuffer Extra;
rlm@1 29
rlm@1 30 bool IsText() const
rlm@1 31 { return TestFlag(NFileHeader::NFlags::kDataIsText); }
rlm@1 32 bool HeaderCRCIsPresent() const
rlm@1 33 { return TestFlag(NFileHeader::NFlags::kHeaderCRCIsPresent); }
rlm@1 34 bool ExtraFieldIsPresent() const
rlm@1 35 { return TestFlag(NFileHeader::NFlags::kExtraIsPresent); }
rlm@1 36 bool NameIsPresent() const
rlm@1 37 { return TestFlag(NFileHeader::NFlags::kNameIsPresent); }
rlm@1 38 bool CommentIsPresent() const
rlm@1 39 { return TestFlag(NFileHeader::NFlags::kComentIsPresent); }
rlm@1 40
rlm@1 41 void SetNameIsPresentFlag(bool nameIsPresent)
rlm@1 42 {
rlm@1 43 if (nameIsPresent)
rlm@1 44 Flags |= NFileHeader::NFlags::kNameIsPresent;
rlm@1 45 else
rlm@1 46 Flags &= (~NFileHeader::NFlags::kNameIsPresent);
rlm@1 47 }
rlm@1 48
rlm@1 49 void Clear()
rlm@1 50 {
rlm@1 51 Name.Empty();
rlm@1 52 Comment.Empty();;
rlm@1 53 Extra.SetCapacity(0);
rlm@1 54 }
rlm@1 55 };
rlm@1 56
rlm@1 57 }}
rlm@1 58
rlm@1 59 #endif