zipios::ZipLocalEntry Class Reference

A concrete implementation of the abstract FileEntry base class for ZipFile entries, specifically for representing the information present in the local headers of file entries in a zip file. More...

#include <ziphead.h>

Public Member Functions

virtual FileEntryclone () const
 Create a heap allocated clone of the object this method is called for. More...
 
virtual string getComment () const
 Returns the comment of the entry, if it has one. More...
 
virtual uint32 getCompressedSize () const
 Returns the compressed size of the entry. More...
 
virtual uint32 getCrc () const
 Returns the Crc for the entry, if it has one. More...
 
virtual vector< unsigned char > getExtra () const
 Returns a vector of bytes of extra data that may be stored with the entry. More...
 
virtual string getFileName () const
 Returns the filename of the entry. More...
 
int getLocalHeaderSize () const
 
virtual StorageMethod getMethod () const
 Returns the method used to store the entry in the FileCollection. More...
 
virtual string getName () const
 Returns the full filename of the entry, including a path if the entry is stored in a subfolder. More...
 
virtual uint32 getSize () const
 Returns the (uncompressed) size of the entry data. More...
 
virtual int getTime () const
 Returns the date and time of FIXME: what?
More...
 
virtual bool isDirectory () const
 Returns true if the entry is a directory. More...
 
virtual bool isValid () const
 Any method or operator that initializes a FileEntry may set a flag, that specifies whether the read entry is valid or not. More...
 
virtual void setComment (const string &comment)
 Sets the comment field for the FileEntry. More...
 
virtual void setCompressedSize (uint32 size)
 Set the compressed size field of the entry. More...
 
virtual void setCrc (uint32 crc)
 Sets the crc field. More...
 
void setDefaultExtract ()
 
virtual void setExtra (const vector< unsigned char > &extra)
 Sets the extra field. More...
 
virtual void setMethod (StorageMethod method)
 Sets the storage method field for the entry. More...
 
virtual void setName (const string &name)
 Sets the name field for the entry. More...
 
virtual void setSize (uint32 size)
 Sets the size field for the entry. More...
 
virtual void setTime (int time)
 Sets the time field for the entry. More...
 
virtual string toString () const
 Returns a human-readable string representation of the entry. More...
 
bool trailingDataDescriptor () const
 
 ZipLocalEntry (const string &_filename="", const vector< unsigned char > &_extra_field=vector< unsigned char >())
 
virtual ~ZipLocalEntry ()
 
- Public Member Functions inherited from zipios::FileEntry
virtual FileEntryclone () const =0
 Create a heap allocated clone of the object this method is called for. More...
 
virtual string getComment () const =0
 Returns the comment of the entry, if it has one. More...
 
virtual uint32 getCompressedSize () const =0
 Returns the compressed size of the entry. More...
 
virtual uint32 getCrc () const =0
 Returns the Crc for the entry, if it has one. More...
 
virtual vector< unsigned char > getExtra () const =0
 Returns a vector of bytes of extra data that may be stored with the entry. More...
 
virtual string getFileName () const =0
 Returns the filename of the entry. More...
 
virtual StorageMethod getMethod () const =0
 Returns the method used to store the entry in the FileCollection. More...
 
virtual string getName () const =0
 Returns the full filename of the entry, including a path if the entry is stored in a subfolder. More...
 
virtual uint32 getSize () const =0
 Returns the (uncompressed) size of the entry data. More...
 
virtual int getTime () const =0
 Returns the date and time of FIXME: what?
More...
 
virtual bool isDirectory () const =0
 Returns true if the entry is a directory. More...
 
virtual bool isValid () const =0
 Any method or operator that initializes a FileEntry may set a flag, that specifies whether the read entry is valid or not. More...
 
virtual void setComment (const string &comment)=0
 Sets the comment field for the FileEntry. More...
 
virtual void setCompressedSize (uint32 size)=0
 Set the compressed size field of the entry. More...
 
virtual void setCrc (uint32 crc)=0
 Sets the crc field. More...
 
virtual void setExtra (const vector< unsigned char > &extra)=0
 Sets the extra field. More...
 
virtual void setMethod (StorageMethod method)=0
 Sets the storage method field for the entry. More...
 
virtual void setName (const string &name)=0
 Sets the name field for the entry. More...
 
virtual void setSize (uint32 size)=0
 Sets the size field for the entry. More...
 
virtual void setTime (int time)=0
 Sets the time field for the entry. More...
 
virtual string toString () const =0
 Returns a human-readable string representation of the entry. More...
 
virtual ~FileEntry ()
 FileEntry destructor. More...
 

Protected Attributes

uint16 compress_method
 
uint32 compress_size
 
uint32 crc_32
 
vector< unsigned char > extra_field
 
uint16 extra_field_len
 
uint16 extract_version
 
string filename
 
uint16 filename_len
 
uint16 gp_bitfield
 
uint16 last_mod_fdate
 
uint16 last_mod_ftime
 
uint32 uncompress_size
 

Static Protected Attributes

static const uint32 signature = 0x04034b50
 

Friends

ostream & operator<< (ostream &os, const ZipLocalEntry &zlh)
 
bool operator== (const ZipLocalEntry &zlh, const ZipCDirEntry &ze)
 
istream & operator>> (istream &is, ZipLocalEntry &zcdh)
 

Additional Inherited Members

- Protected Member Functions inherited from zipios::FileEntry
void ref () const
 
unsigned int unref () const
 

Detailed Description

A concrete implementation of the abstract FileEntry base class for ZipFile entries, specifically for representing the information present in the local headers of file entries in a zip file.

Constructor & Destructor Documentation

◆ ZipLocalEntry()

zipios::ZipLocalEntry::ZipLocalEntry ( const string &  _filename = "",
const vector< unsigned char > &  _extra_field = vector< unsigned char >() 
)

Referenced by clone().

◆ ~ZipLocalEntry()

virtual zipios::ZipLocalEntry::~ZipLocalEntry ( )
virtual

Member Function Documentation

◆ clone()

FileEntry * zipios::ZipLocalEntry::clone ( ) const
virtual

Create a heap allocated clone of the object this method is called for.

The caller is responsible for deallocating the clone when he is done with it.

Returns
A heap allocated copy of the object this method is called for.

Implements zipios::FileEntry.

Reimplemented in zipios::ZipCDirEntry.

References ZipLocalEntry().

Referenced by ArchPanel.CommandPanelSheet::Activated(), ArchStructure.CommandStructuralSystem::Activated(), ArchComponent.Component::execute(), ArchCurtainWall.CurtainWall::execute(), ArchTruss.Truss::execute(), Mod.PartDesign.WizardShaft.SegmentFunction.SegmentFunction::integrated(), and PathTests.TestPathHelix.TestPathHelix::test04().

◆ getComment()

string zipios::ZipLocalEntry::getComment ( ) const
virtual

Returns the comment of the entry, if it has one.

Otherwise it returns an empty string.

Returns
the comment associated with the entry, if there is one.

Implements zipios::FileEntry.

Reimplemented in zipios::ZipCDirEntry.

◆ getCompressedSize()

uint32 zipios::ZipLocalEntry::getCompressedSize ( ) const
virtual

Returns the compressed size of the entry.

If the entry is not stored in a compressed format, the uncompressed size is returned.

Returns
the compressed size of the entry. If the entry is stored without compression the uncompressed size is returned.

Implements zipios::FileEntry.

References compress_size.

◆ getCrc()

uint32 zipios::ZipLocalEntry::getCrc ( ) const
virtual

Returns the Crc for the entry, if it has one.

FIXME: what is returned if it doesn't have one?

Returns
the Crc for the entry, if it has one.

Implements zipios::FileEntry.

References crc_32.

◆ getExtra()

vector< unsigned char > zipios::ZipLocalEntry::getExtra ( ) const
virtual

Returns a vector of bytes of extra data that may be stored with the entry.

Returns
A vector< unsigned char > of extra bytes that may potentially be associated with an entry.

Implements zipios::FileEntry.

References extra_field.

◆ getFileName()

string zipios::ZipLocalEntry::getFileName ( ) const
virtual

Returns the filename of the entry.


Returns
Returns the filename of the entry.

Implements zipios::FileEntry.

References filename, isDirectory(), and zipios::separator.

◆ getLocalHeaderSize()

int zipios::ZipLocalEntry::getLocalHeaderSize ( ) const

◆ getMethod()

StorageMethod zipios::ZipLocalEntry::getMethod ( ) const
virtual

Returns the method used to store the entry in the FileCollection.

Returns
the storage method used to store the entry in the collection.
See also
StorageMethod.

Implements zipios::FileEntry.

References compress_method.

◆ getName()

string zipios::ZipLocalEntry::getName ( ) const
virtual

Returns the full filename of the entry, including a path if the entry is stored in a subfolder.

Returns
the filename of the entry, including path if the entry is stored in a sub-folder.

Implements zipios::FileEntry.

References filename.

◆ getSize()

uint32 zipios::ZipLocalEntry::getSize ( ) const
virtual

Returns the (uncompressed) size of the entry data.


Returns
Returns the (uncompressed) size of the entry.

Implements zipios::FileEntry.

References uncompress_size.

◆ getTime()

int zipios::ZipLocalEntry::getTime ( ) const
virtual

Returns the date and time of FIXME: what?

Returns
the date and time of the entry.

Implements zipios::FileEntry.

References last_mod_fdate, and last_mod_ftime.

◆ isDirectory()

bool zipios::ZipLocalEntry::isDirectory ( ) const
virtual

Returns true if the entry is a directory.

A directory entry is an entry which name ends with a separator ('/' for Unix systems, '\' for Windows and DOS systems.

Returns
true if the entry is a directory.

Implements zipios::FileEntry.

References filename, and zipios::separator.

Referenced by getFileName().

◆ isValid()

bool zipios::ZipLocalEntry::isValid ( ) const
virtual

Any method or operator that initializes a FileEntry may set a flag, that specifies whether the read entry is valid or not.

If it isn't this method returns false.

Returns
true if the FileEntry has been parsed successfully.

Implements zipios::FileEntry.

◆ setComment()

void zipios::ZipLocalEntry::setComment ( const string &  comment)
virtual

Sets the comment field for the FileEntry.

Parameters
commentstring with the new comment.

Implements zipios::FileEntry.

Reimplemented in zipios::ZipCDirEntry.

◆ setCompressedSize()

void zipios::ZipLocalEntry::setCompressedSize ( uint32  size)
virtual

Set the compressed size field of the entry.

Parameters
sizevalue to set the compressed size field of the entry to.

Implements zipios::FileEntry.

References compress_size.

Referenced by zipios::ZipOutputStreambuf::updateEntryHeaderInfo().

◆ setCrc()

void zipios::ZipLocalEntry::setCrc ( uint32  crc)
virtual

Sets the crc field.

Parameters
crcvalue to set the crc field to.

Implements zipios::FileEntry.

References crc_32.

Referenced by zipios::ZipOutputStreambuf::updateEntryHeaderInfo().

◆ setDefaultExtract()

void zipios::ZipLocalEntry::setDefaultExtract ( )

References extract_version.

◆ setExtra()

void zipios::ZipLocalEntry::setExtra ( const vector< unsigned char > &  extra)
virtual

Sets the extra field.

Parameters
extrathe extra field is set to this value.

Implements zipios::FileEntry.

References extra_field, and extra_field_len.

◆ setMethod()

void zipios::ZipLocalEntry::setMethod ( StorageMethod  method)
virtual

Sets the storage method field for the entry.

Parameters
methodthe method field is set to the specified value.

Implements zipios::FileEntry.

References compress_method.

Referenced by zipios::ZipOutputStreambuf::putNextEntry().

◆ setName()

void zipios::ZipLocalEntry::setName ( const string &  name)
virtual

Sets the name field for the entry.

Parameters
namethe name field is set to the specified value.

Implements zipios::FileEntry.

References filename, and filename_len.

◆ setSize()

void zipios::ZipLocalEntry::setSize ( uint32  size)
virtual

Sets the size field for the entry.

Parameters
sizethe size field is set to this value.

Implements zipios::FileEntry.

References uncompress_size.

Referenced by zipios::ZipOutputStreambuf::updateEntryHeaderInfo().

◆ setTime()

void zipios::ZipLocalEntry::setTime ( int  time)
virtual

Sets the time field for the entry.

Parameters
timethe time field is set to the specified value.

Implements zipios::FileEntry.

References last_mod_fdate, and last_mod_ftime.

Referenced by zipios::ZipOutputStreambuf::updateEntryHeaderInfo().

◆ toString()

string zipios::ZipLocalEntry::toString ( ) const
virtual

Returns a human-readable string representation of the entry.

Returns
a human-readable string representation of the entry.

Implements zipios::FileEntry.

Reimplemented in zipios::ZipCDirEntry.

References compress_size, filename, zipios::OutputStringStream::str(), and uncompress_size.

◆ trailingDataDescriptor()

bool zipios::ZipLocalEntry::trailingDataDescriptor ( ) const

References gp_bitfield.

Friends And Related Function Documentation

◆ operator<<

ostream & operator<< ( ostream &  os,
const ZipLocalEntry zlh 
)
friend

◆ operator==

bool operator== ( const ZipLocalEntry zlh,
const ZipCDirEntry ze 
)
friend

◆ operator>>

istream & operator>> ( istream &  is,
ZipLocalEntry zcdh 
)
friend

Member Data Documentation

◆ compress_method

uint16 zipios::ZipLocalEntry::compress_method
protected

Referenced by getMethod(), and setMethod().

◆ compress_size

uint32 zipios::ZipLocalEntry::compress_size
protected

◆ crc_32

uint32 zipios::ZipLocalEntry::crc_32
protected

Referenced by getCrc(), and setCrc().

◆ extra_field

vector< unsigned char > zipios::ZipLocalEntry::extra_field
protected

◆ extra_field_len

uint16 zipios::ZipLocalEntry::extra_field_len
protected

Referenced by setExtra().

◆ extract_version

uint16 zipios::ZipLocalEntry::extract_version
protected

Referenced by setDefaultExtract().

◆ filename

◆ filename_len

uint16 zipios::ZipLocalEntry::filename_len
protected

Referenced by setName().

◆ gp_bitfield

uint16 zipios::ZipLocalEntry::gp_bitfield
protected

Referenced by trailingDataDescriptor().

◆ last_mod_fdate

uint16 zipios::ZipLocalEntry::last_mod_fdate
protected

Referenced by getTime(), and setTime().

◆ last_mod_ftime

uint16 zipios::ZipLocalEntry::last_mod_ftime
protected

Referenced by getTime(), and setTime().

◆ signature

const uint32 zipios::ZipLocalEntry::signature = 0x04034b50
staticprotected

◆ uncompress_size

uint32 zipios::ZipLocalEntry::uncompress_size
protected

The documentation for this class was generated from the following files: