20 class TZIPFile : 
public TArchiveFile {
 
   28    Long64_t   FindEndHeader();
 
   29    Int_t      ReadEndHeader(Long64_t pos);
 
   30    Long64_t   ReadZip64EndLocator(Long64_t pos);
 
   31    Int_t      ReadZip64EndRecord(Long64_t pos);
 
   32    Int_t      ReadDirectory();
 
   33    Int_t      ReadMemberHeader(TZIPMember *member);
 
   34    UInt_t     Get(
const void *buffer, Int_t bytes);
 
   35    ULong64_t  Get64(
const void *buffer, Int_t bytes);
 
   36    Int_t      DecodeZip64ExtendedExtraField(TZIPMember *m, Bool_t global = kTRUE);
 
   41       kARCHIVE_VERSION     = 45,
 
   44       kDIR_HEADER_MAGIC       = 0x02014b50,
 
   45       kENTRY_HEADER_MAGIC     = 0x04034b50,
 
   46       kEND_HEADER_MAGIC       = 0x06054b50,
 
   47       kZIP64_EDR_HEADER_MAGIC = 0x06064b50,
 
   48       kZIP64_EDL_HEADER_MAGIC = 0x07064b50,
 
   49       kZIP64_EXTENDED_MAGIC   = 0x0001,     
 
   51       kMAX_VAR_LEN            = 0xffff,     
 
   52       kMAX_SIZE               = 0xffffffff, 
 
   56       kDIR_VMADE_OFF      = 4,    kDIR_VMADE_LEN          = 2,
 
   57       kDIR_VREQD_OFF      = 6,    kDIR_VREQD_LEN          = 2,
 
   58       kDIR_FLAG_OFF       = 8,    kDIR_FLAG_LEN           = 2,
 
   59       kDIR_METHOD_OFF     = 10,   kDIR_METHOD_LEN         = 2,
 
   60       kDIR_DATE_OFF       = 12,   kDIR_DATE_LEN           = 4,
 
   61       kDIR_CRC32_OFF      = 16,   kDIR_CRC32_LEN          = 4,
 
   62       kDIR_CSIZE_OFF      = 20,   kDIR_CSIZE_LEN          = 4,
 
   63       kDIR_USIZE_OFF      = 24,   kDIR_USIZE_LEN          = 4,
 
   64       kDIR_NAMELEN_OFF    = 28,   kDIR_NAMELEN_LEN        = 2,
 
   65       kDIR_EXTRALEN_OFF   = 30,   kDIR_EXTRALEN_LEN       = 2,
 
   66       kDIR_COMMENTLEN_OFF = 32,   kDIR_COMMENTLEN_LEN     = 2,
 
   67       kDIR_DISK_START_OFF = 34,   kDIR_DISK_START_LEN     = 2,
 
   68       kDIR_INT_ATTR_OFF   = 36,   kDIR_INT_ATTR_LEN       = 2,
 
   69       kDIR_EXT_ATTR_OFF   = 38,   kDIR_EXT_ATTR_LEN       = 4,
 
   70       kDIR_ENTRY_POS_OFF  = 42,   kDIR_ENTRY_POS_LEN      = 4,
 
   71       kDIR_HEADER_SIZE    = 46,
 
   74       kZIP64_EDR_MAGIC_OFF      = 0,
 
   75       kZIP64_EDR_SIZE_OFF       = 4,  kZIP64_EDR_SIZE_LEN       = 8,
 
   76       kZIP64_EDR_VERS_MADE_OFF  = 12, kZIP64_EDR_VERS_MADE_LEN  = 2,
 
   77       kZIP64_EDR_VERS_EXT_OFF   = 14, kZIP64_EDR_VERS_EXT_LEN   = 2,
 
   78       kZIP64_EDR_DISK_OFF       = 16, kZIP64_EDR_DISK_LEN       = 4,
 
   79       kZIP64_EDR_DIR_DISK_OFF   = 20, kZIP64_EDR_DIR_DISK_LEN   = 4,
 
   80       kZIP64_EDR_DISK_HDRS_OFF  = 24, kZIP64_EDR_DISK_HDRS_LEN  = 8,
 
   81       kZIP64_EDR_TOTAL_HDRS_OFF = 32, kZIP64_EDR_TOTAL_HDRS_LEN = 8,
 
   82       kZIP64_EDR_DIR_SIZE_OFF   = 40, kZIP64_EDR_DIR_SIZE_LEN   = 8,
 
   83       kZIP64_EDR_DIR_OFFSET_OFF = 48, kZIP64_EDR_DIR_OFFSET_LEN = 8,
 
   84       kZIP64_EDR_HEADER_SIZE    = 56,
 
   87       kZIP64_EDL_MAGIC_OFF      = 0,
 
   88       kZIP64_EDL_DISK_OFF       = 4,  kZIP64_EDL_DISK_LEN       = 4,
 
   89       kZIP64_EDL_REC_OFFSET_OFF = 8,  kZIP64_EDL_REC_OFFSET_LEN = 8,
 
   90       kZIP64_EDL_TOTAL_DISK_OFF = 16, kZIP64_EDL_TOTAL_DISK_LEN = 4,
 
   91       kZIP64_EDL_HEADER_SIZE    = 20,
 
   95       kEND_DISK_OFF       = 4,    kEND_DISK_LEN           = 2,
 
   96       kEND_DIR_DISK_OFF   = 6,    kEND_DIR_DISK_LEN       = 2,
 
   97       kEND_DISK_HDRS_OFF  = 8,    kEND_DISK_HDRS_LEN      = 2,
 
   98       kEND_TOTAL_HDRS_OFF = 10,   kEND_TOTAL_HDRS_LEN     = 2,
 
   99       kEND_DIR_SIZE_OFF   = 12,   kEND_DIR_SIZE_LEN       = 4,
 
  100       kEND_DIR_OFFSET_OFF = 16,   kEND_DIR_OFFSET_LEN     = 4,
 
  101       kEND_COMMENTLEN_OFF = 20,   kEND_COMMENTLEN_LEN     = 2,
 
  102       kEND_HEADER_SIZE    = 22,
 
  105       kENTRY_MAGIC_OFF    = 0,
 
  106       kENTRY_VREQD_OFF    = 4,    kENTRY_VREQD_LEN        = 2,
 
  107       kENTRY_FLAG_OFF     = 6,    kENTRY_FLAG_LEN         = 2,
 
  108       kENTRY_METHOD_OFF   = 8,    kENTRY_METHOD_LEN       = 2,
 
  109       kENTRY_DATE_OFF     = 10,   kENTRY_DATE_LEN         = 4,
 
  110       kENTRY_CRC32_OFF    = 14,   kENTRY_CRC32_LEN        = 4,
 
  111       kENTRY_CSIZE_OFF    = 18,   kENTRY_CSIZE_LEN        = 4,
 
  112       kENTRY_USIZE_OFF    = 22,   kENTRY_USIZE_LEN        = 4,
 
  113       kENTRY_NAMELEN_OFF  = 26,   kENTRY_NAMELEN_LEN      = 2,
 
  114       kENTRY_EXTRALEN_OFF = 28,   kENTRY_EXTRALEN_LEN     = 2,
 
  115       kENTRY_HEADER_SIZE  = 30,
 
  118       kZIP64_EXTENDED_MAGIC_OFF      = 0,  kZIP64_EXTENDED_MAGIC_LEN      = 2,
 
  119       kZIP64_EXTENDED_SIZE_OFF       = 2,  kZIP64_EXTENDED_SIZE_LEN       = 2,
 
  120       kZIP64_EXTENDED_USIZE_OFF      = 4,  kZIP64_EXTENDED_USIZE_LEN      = 8,
 
  121       kZIP64_EXTENTED_CSIZE_OFF      = 12, kZIP64_EXTENDED_CSIZE_LEN      = 8,
 
  122       kZIP64_EXTENDED_HDR_OFFSET_OFF = 20, kZIP64_EXTENDED_HDR_OFFSET_LEN = 8,
 
  123       kZIP64_EXTENDED_DISK_OFF       = 28, kZIP64_EXTENDED_DISK_LEN       = 4,
 
  124       kZIP64_EXTENDED_SIZE           = 32,
 
  131    TZIPFile(
const TZIPFile&) = 
delete; 
 
  132    TZIPFile& operator=(
const TZIPFile&) = 
delete; 
 
  136    TZIPFile(
const char *archive, 
const char *member, TFile *file);
 
  137    virtual ~TZIPFile() { }
 
  139    virtual Int_t OpenArchive();
 
  140    virtual Int_t SetCurrentMember();
 
  142    void          Print(Option_t *option = 
"") 
const;
 
  156 class TZIPMember : 
public TArchiveMember {
 
  158 friend class TZIPFile;
 
  173    TZIPMember(
const char *name);
 
  174    TZIPMember(
const TZIPMember &member);
 
  175    TZIPMember &operator=(
const TZIPMember &rhs);
 
  176    virtual ~TZIPMember();
 
  178    void     *GetLocal()
 const { 
return fLocal; }
 
  179    UInt_t    GetLocalLen()
 const { 
return fLocalLen; }
 
  180    void     *GetGlobal()
 const { 
return fGlobal; }
 
  181    UInt_t    GetGlobalLen()
 const { 
return fGlobalLen; }
 
  182    UInt_t    GetCRC32()
 const { 
return fCRC32; }
 
  183    UInt_t    GetAttrInt()
 const { 
return fAttrInt; }
 
  184    UInt_t    GetAttrExt()
 const { 
return fAttrExt; }
 
  185    UInt_t    GetMethod()
 const { 
return fMethod; }
 
  186    UInt_t    GetLevel()
 const { 
return fLevel; }
 
  188    void      Print(Option_t *option = 
"") 
const;
 
  190    ClassDef(TZIPMember, 0);