25#ifndef SRC_XRDZIP_XRDZIPLFH_HH_
26#define SRC_XRDZIP_XRDZIPLFH_HH_
46 inline static uint32_t
initSize(
const off_t &fileSize )
55 LFH(
const std::string &
filename, uint32_t crc, off_t fileSize, time_t time ) :
71 LFH(
const char *buffer,
const uint64_t bufferSize = 0 )
73 if(bufferSize > 0 && bufferSize < (uint64_t)
lfhBaseSize)
76 uint32_t signature = 0;
119 std::copy(
filename.begin(),
filename.end(), std::back_inserter( buffer ) );
120 extra->Serialize( buffer );
135 exsize +=
sizeof( uint64_t );
142 exsize +=
sizeof( uint64_t );
147 if( exsize == 0 )
return;
154 extra->FromBuffer( buffer, exsize, ovrflws );
Definition XrdZipCDFH.hh:42
static void from_buffer(INT &var, const char *&buffer)
Definition XrdZipUtils.hh:78
std::vector< char > buffer_t
Definition XrdZipUtils.hh:56
static void copy_bytes(const INT value, buffer_t &buffer)
Definition XrdZipUtils.hh:62
A data structure representing ZIP Local File Header.
Definition XrdZipLFH.hh:42
uint32_t ZCRC32
Definition XrdZipLFH.hh:161
void Serialize(buffer_t &buffer)
Serialize the object into a buffer.
Definition XrdZipLFH.hh:106
static const uint16_t lfhBaseSize
Definition XrdZipLFH.hh:174
dos_timestmp timestmp
Definition XrdZipLFH.hh:160
uint16_t extraLength
Definition XrdZipLFH.hh:165
uint32_t compressedSize
Definition XrdZipLFH.hh:162
LFH(const char *buffer, const uint64_t bufferSize=0)
Constructor from buffer.
Definition XrdZipLFH.hh:71
LFH(const std::string &filename, uint32_t crc, off_t fileSize, time_t time)
Constructor.
Definition XrdZipLFH.hh:55
static uint32_t initSize(const off_t &fileSize)
Convenience function for initializing compressed/uncompressed size.
Definition XrdZipLFH.hh:46
uint16_t compressionMethod
Definition XrdZipLFH.hh:159
uint16_t generalBitFlag
Definition XrdZipLFH.hh:158
void ParseExtra(const char *buffer, uint16_t length)
Definition XrdZipLFH.hh:126
uint16_t lfhSize
Definition XrdZipLFH.hh:168
std::unique_ptr< Extra > extra
Definition XrdZipLFH.hh:167
uint32_t uncompressedSize
Definition XrdZipLFH.hh:163
uint16_t minZipVersion
Definition XrdZipLFH.hh:157
std::string filename
Definition XrdZipLFH.hh:166
uint16_t filenameLength
Definition XrdZipLFH.hh:164
static const uint32_t lfhSign
Local File Header signature.
Definition XrdZipLFH.hh:173
Definition XrdZipUtils.hh:42
Definition XrdZipUtils.hh:105
uint16_t time
Definition XrdZipUtils.hh:142
uint16_t date
Definition XrdZipUtils.hh:155
Definition XrdZipUtils.hh:49