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;
118 std::copy(
filename.begin(),
filename.end(), std::back_inserter( buffer ) );
119 extra->Serialize( buffer );
134 exsize +=
sizeof( uint64_t );
141 exsize +=
sizeof( uint64_t );
146 if( exsize == 0 )
return;
153 extra->FromBuffer( buffer, exsize, ovrflws );
Definition: XrdZipCDFH.hh:40
static void from_buffer(INT &var, const char *&buffer)
Definition: XrdZipUtils.hh:72
std::vector< char > buffer_t
Definition: XrdZipUtils.hh:54
static void copy_bytes(const INT value, buffer_t &buffer)
Definition: XrdZipUtils.hh:60
A data structure representing ZIP Local File Header.
Definition: XrdZipLFH.hh:42
uint32_t ZCRC32
Definition: XrdZipLFH.hh:160
void Serialize(buffer_t &buffer)
Serialize the object into a buffer.
Definition: XrdZipLFH.hh:105
static const uint16_t lfhBaseSize
Definition: XrdZipLFH.hh:173
dos_timestmp timestmp
Definition: XrdZipLFH.hh:159
uint16_t extraLength
Definition: XrdZipLFH.hh:164
uint32_t compressedSize
Definition: XrdZipLFH.hh:161
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:158
uint16_t generalBitFlag
Definition: XrdZipLFH.hh:157
void ParseExtra(const char *buffer, uint16_t length)
Definition: XrdZipLFH.hh:125
uint16_t lfhSize
Definition: XrdZipLFH.hh:167
std::unique_ptr< Extra > extra
Definition: XrdZipLFH.hh:166
uint32_t uncompressedSize
Definition: XrdZipLFH.hh:162
uint16_t minZipVersion
Definition: XrdZipLFH.hh:156
std::string filename
Definition: XrdZipLFH.hh:165
uint16_t filenameLength
Definition: XrdZipLFH.hh:163
static const uint32_t lfhSign
Local File Header signature.
Definition: XrdZipLFH.hh:172
Definition: XrdZipUtils.hh:40
Definition: XrdZipUtils.hh:93
uint16_t time
Definition: XrdZipUtils.hh:130
uint16_t date
Definition: XrdZipUtils.hh:143
Definition: XrdZipUtils.hh:47