25#ifndef SRC_XRDZIP_XRDZIPEOCD_HH_
26#define SRC_XRDZIP_XRDZIPEOCD_HH_
41 inline static const char*
Find(
const char *buffer, uint64_t size )
43 for( ssize_t offset = size -
eocdBaseSize; offset >= 0; --offset )
45 uint32_t signature = to<uint32_t>( buffer + offset );
46 if( signature ==
eocdSign )
return buffer + offset;
54 EOCD(
const char *buffer, uint32_t maxSize = 0 )
56 nbDisk = to<uint16_t>(buffer + 4);
59 nbCdRec = to<uint16_t>(buffer + 10);
60 cdSize = to<uint32_t>(buffer + 12);
61 cdOffset = to<uint32_t>(buffer + 16);
74 EOCD( uint64_t cdoff, uint32_t cdcnt, uint32_t cdsize ):
118 std::copy(
comment.begin(),
comment.end(), std::back_inserter( buffer ) );
126 std::stringstream ss;
127 ss <<
"{nbDisk=" <<
nbDisk;
131 ss <<
";cdSize" <<
cdSize;
134 ss <<
";comment=" <<
comment <<
'}';
Definition XrdZipCDFH.hh:42
std::vector< char > buffer_t
Definition XrdZipUtils.hh:56
static void copy_bytes(const INT value, buffer_t &buffer)
Definition XrdZipUtils.hh:62
Definition XrdZipEOCD.hh:40
uint16_t nbDisk
Definition XrdZipEOCD.hh:138
static const uint16_t eocdBaseSize
Definition XrdZipEOCD.hh:153
uint16_t eocdSize
Definition XrdZipEOCD.hh:146
bool useZip64
Definition XrdZipEOCD.hh:147
std::string comment
Definition XrdZipEOCD.hh:145
uint16_t commentLength
Definition XrdZipEOCD.hh:144
static const uint16_t maxCommentLength
Definition XrdZipEOCD.hh:154
uint16_t nbCdRecD
Definition XrdZipEOCD.hh:140
std::string ToString()
Convert the EOCD into a string for logging purposes.
Definition XrdZipEOCD.hh:124
static const char * Find(const char *buffer, uint64_t size)
Definition XrdZipEOCD.hh:41
EOCD(const char *buffer, uint32_t maxSize=0)
Constructor from buffer.
Definition XrdZipEOCD.hh:54
uint16_t nbDiskCd
Definition XrdZipEOCD.hh:139
EOCD(uint64_t cdoff, uint32_t cdcnt, uint32_t cdsize)
Constructor from last LFH + CDFH.
Definition XrdZipEOCD.hh:74
uint32_t cdOffset
Definition XrdZipEOCD.hh:143
static const uint32_t eocdSign
Definition XrdZipEOCD.hh:152
uint32_t cdSize
Definition XrdZipEOCD.hh:142
uint16_t nbCdRec
Definition XrdZipEOCD.hh:141
void Serialize(buffer_t &buffer)
Serialize the object into a buffer.
Definition XrdZipEOCD.hh:107
Definition XrdZipUtils.hh:42
Definition XrdZipUtils.hh:49