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 );
static void from_buffer(INT &var, const char *&buffer)
std::vector< char > buffer_t
static void copy_bytes(const INT value, buffer_t &buffer)
A data structure representing ZIP Local File Header.
void Serialize(buffer_t &buffer)
Serialize the object into a buffer.
static const uint16_t lfhBaseSize
LFH(const char *buffer, const uint64_t bufferSize=0)
Constructor from buffer.
LFH(const std::string &filename, uint32_t crc, off_t fileSize, time_t time)
Constructor.
static uint32_t initSize(const off_t &fileSize)
Convenience function for initializing compressed/uncompressed size.
uint16_t compressionMethod
void ParseExtra(const char *buffer, uint16_t length)
std::unique_ptr< Extra > extra
uint32_t uncompressedSize
static const uint32_t lfhSign
Local File Header signature.