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>

Inheritance diagram for zipios::ZipLocalEntry:
zipios::FileEntry zipios::ZipCDirEntry

List of all members.

Public Member Functions

virtual FileEntryclone () const
 Create a heap allocated clone of the object this method is called for.
virtual string getComment () const
 Returns the comment of the entry, if it has one.
virtual uint32 getCompressedSize () const
 Returns the compressed size of the entry.
virtual uint32 getCrc () const
 Returns the Crc for the entry, if it has one.
virtual vector< unsigned char > getExtra () const
 Returns a vector of bytes of extra data that may be stored with the entry.
virtual string getFileName () const
 Returns the filename of the entry.
int getLocalHeaderSize () const
virtual StorageMethod getMethod () const
 Returns the method used to store the entry in the FileCollection.
virtual string getName () const
 Returns the full filename of the entry, including a path if the entry is stored in a subfolder.
virtual uint32 getSize () const
 Returns the (uncompressed) size of the entry data.
virtual int getTime () const
 Returns the date and time of FIXME: what?
virtual bool isDirectory () const
 Returns true if the entry is a directory.
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.
ZipLocalEntryoperator= (const class ZipLocalEntry &src)
virtual void setComment (const string &comment)
 Sets the comment field for the FileEntry.
virtual void setCompressedSize (uint32 size)
 Set the compressed size field of the entry.
virtual void setCrc (uint32 crc)
 Sets the crc field.
void setDefaultExtract ()
virtual void setExtra (const vector< unsigned char > &extra)
 Sets the extra field.
virtual void setMethod (StorageMethod method)
 Sets the storage method field for the entry.
virtual void setName (const string &name)
 Sets the name field for the entry.
virtual void setSize (uint32 size)
 Sets the size field for the entry.
virtual void setTime (int time)
 Sets the time field for the entry.
virtual string toString () const
 Returns a human-readable string representation of the entry.
bool trailingDataDescriptor () const
 ZipLocalEntry (const string &_filename="", const vector< unsigned char > &_extra_field=vector< unsigned char >())
virtual ~ZipLocalEntry ()

Protected Attributes

bool _valid
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)

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.

Definition at line 22 of file ziphead.h.


Constructor & Destructor Documentation

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

Definition at line 27 of file ziphead.h.

Referenced by clone().

virtual zipios::ZipLocalEntry::~ZipLocalEntry (  )  [inline, virtual]

Definition at line 69 of file ziphead.h.


Member Function Documentation

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.

Definition at line 207 of file ziphead.cpp.

References ZipLocalEntry().

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.

Definition at line 91 of file ziphead.cpp.

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.

Definition at line 95 of file ziphead.cpp.

References compress_size.

Referenced by zipios::ZipInputStreambuf::closeEntry().

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.

Definition at line 99 of file ziphead.cpp.

References crc_32.

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.

Definition at line 103 of file ziphead.cpp.

References extra_field.

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

Returns the filename of the entry.

Returns:
Returns the filename of the entry.

Implements zipios::FileEntry.

Definition at line 115 of file ziphead.cpp.

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

int zipios::ZipLocalEntry::getLocalHeaderSize (  )  const

Definition at line 193 of file ziphead.cpp.

References extra_field, and filename.

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

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.

Definition at line 107 of file ziphead.cpp.

References compress_method.

Referenced by zipios::ZipInputStreambuf::underflow().

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.

Definition at line 111 of file ziphead.cpp.

References filename.

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.

Definition at line 128 of file ziphead.cpp.

References uncompress_size.

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.

Definition at line 132 of file ziphead.cpp.

References last_mod_fdate, and last_mod_ftime.

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.

Definition at line 141 of file ziphead.cpp.

References filename, and zipios::separator.

Referenced by getFileName().

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 succesfully.

Implements zipios::FileEntry.

Definition at line 137 of file ziphead.cpp.

References _valid.

ZipLocalEntry& zipios::ZipLocalEntry::operator= ( const class ZipLocalEntry src  )  [inline]

Reimplemented in zipios::ZipCDirEntry.

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

Sets the comment field for the FileEntry.

Parameters:
comment string with the new comment.

Implements zipios::FileEntry.

Reimplemented in zipios::ZipCDirEntry.

Definition at line 147 of file ziphead.cpp.

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

Set the compressed size field of the entry.

Parameters:
size value to set the compressed size field of the entry to.

Implements zipios::FileEntry.

Definition at line 151 of file ziphead.cpp.

References compress_size.

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

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

Sets the crc field.

Parameters:
crc value to set the crc field to.

Implements zipios::FileEntry.

Definition at line 155 of file ziphead.cpp.

References crc_32.

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

void zipios::ZipLocalEntry::setDefaultExtract (  ) 

Definition at line 87 of file ziphead.cpp.

References extract_version.

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

Sets the extra field.

Parameters:
extra the extra field is set to this value.

Implements zipios::FileEntry.

Definition at line 159 of file ziphead.cpp.

References extra_field, and extra_field_len.

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

Sets the storage method field for the entry.

Parameters:
method the method field is set to the specified value.

Implements zipios::FileEntry.

Definition at line 164 of file ziphead.cpp.

References compress_method.

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

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

Sets the name field for the entry.

Parameters:
name the name field is set to the specified value.

Implements zipios::FileEntry.

Definition at line 168 of file ziphead.cpp.

References filename, and filename_len.

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

Sets the size field for the entry.

Parameters:
size the size field is set to this value.

Implements zipios::FileEntry.

Definition at line 173 of file ziphead.cpp.

References uncompress_size.

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

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

Sets the time field for the entry.

Parameters:
time the time field is set to the specified value.

Implements zipios::FileEntry.

Definition at line 177 of file ziphead.cpp.

References last_mod_fdate, and last_mod_ftime.

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

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.

Definition at line 186 of file ziphead.cpp.

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

bool zipios::ZipLocalEntry::trailingDataDescriptor (  )  const

Definition at line 197 of file ziphead.cpp.

References gp_bitfield.


Friends And Related Function Documentation

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

Reimplemented in zipios::ZipCDirEntry.

bool operator== ( const ZipLocalEntry zlh,
const ZipCDirEntry ze 
) [friend]
istream& operator>> ( istream &  is,
ZipLocalEntry zcdh 
) [friend]

Reimplemented in zipios::ZipCDirEntry.


Member Data Documentation

Definition at line 86 of file ziphead.h.

Referenced by isValid().

Definition at line 74 of file ziphead.h.

Referenced by getMethod(), zipios::ZipCDirEntry::operator=(), and setMethod().

Definition at line 77 of file ziphead.h.

Referenced by getCrc(), zipios::ZipCDirEntry::operator=(), and setCrc().

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

Definition at line 81 of file ziphead.h.

Referenced by zipios::ZipCDirEntry::operator=(), and setExtra().

Definition at line 72 of file ziphead.h.

Referenced by zipios::ZipCDirEntry::operator=(), and setDefaultExtract().

string zipios::ZipLocalEntry::filename [protected]

Definition at line 80 of file ziphead.h.

Referenced by zipios::ZipCDirEntry::operator=(), and setName().

Definition at line 73 of file ziphead.h.

Referenced by zipios::ZipCDirEntry::operator=(), and trailingDataDescriptor().

Definition at line 76 of file ziphead.h.

Referenced by getTime(), zipios::ZipCDirEntry::operator=(), and setTime().

Definition at line 75 of file ziphead.h.

Referenced by getTime(), zipios::ZipCDirEntry::operator=(), and setTime().

const uint32 zipios::ZipLocalEntry::signature = 0x04034b50 [static, protected]

Definition at line 71 of file ziphead.h.


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

Generated on Wed Nov 23 19:02:52 2011 for FreeCAD by  doxygen 1.6.1