CZipExtraField Class Reference

#include <ZipExtraField.h>

List of all members.

Public Member Functions

int Add (CZipExtraData *pExtra)
CZipExtraDataCreateNew (WORD headerID, int &idx)
CZipExtraDataCreateNew (WORD headerID)
 CZipExtraField (const CZipExtraField &arr)
CZipExtraDataGetAt (int index) const
int GetCount () const
int GetTotalSize () const
bool HasHeader (WORD headerID)
CZipExtraDataLookup (WORD headerID, int &index) const
CZipExtraDataLookup (WORD headerID) const
CZipExtraFieldoperator= (const CZipExtraField &field)
void Remove (WORD headerID)
void RemoveAt (int index)
void RemoveInternalHeaders ()
void RemoveInternalLocalHeaders ()
bool Validate () const

Static Public Member Functions

static bool HasSize (WORD headerID)

Static Public Attributes

static CZipArray< WORD > m_aNoSizeExtraHeadersID

Protected Member Functions

void Clear ()
bool Read (CZipStorage *pStorage, WORD uSize)
void Write (char *buffer) const

Friends

class CZipFileHeader


Detailed Description

Represents a local or central extra field in a zip archive. This is a collection of extra data records (CZipExtraData).

See also:
Providing Custom Data: Extra Fields

CZipExtraData

Definition at line 58 of file ZipExtraField.h.


Member Function Documentation

int CZipExtraField::Add ( CZipExtraData pExtra  )  [inline]

Adds a new extra data record to the extra field.

Parameters:
pExtra The extra data record to add.
Returns:
The index of pExtra in the internal collection.

Definition at line 142 of file ZipExtraField.h.

void CZipExtraField::Clear (  )  [inline, protected]

Removes all extra data records from the extra field.

Definition at line 295 of file ZipExtraField.h.

CZipExtraData* CZipExtraField::CreateNew ( WORD  headerID,
int &  idx 
) [inline]

Creates a new extra data record with the given ID and adds it to the extra field.

Parameters:
headerID The extra data ID.
idx Receives the value of the index of the new extra data in the internal collection.
Returns:
The created extra data record.
See also:
CZipExtraData::GetHeaderID

Definition at line 183 of file ZipExtraField.h.

CZipExtraData* CZipExtraField::CreateNew ( WORD  headerID  )  [inline]

Creates a new extra data record with the given ID and adds it to the extra field.

Parameters:
headerID The extra data ID.
Returns:
The created extra data record.
See also:
CZipExtraData::GetHeaderID

Definition at line 160 of file ZipExtraField.h.

CZipExtraData* CZipExtraField::GetAt ( int  index  )  const [inline]

Returns the extra data record at the given index.

Parameters:
index The index of extra data record to retrieve.
Returns:
The extra data record.

Definition at line 116 of file ZipExtraField.h.

int CZipExtraField::GetCount (  )  const [inline]

Returns the number of extra data records included in the extra field.

Returns:
The number of extra fields included.

Definition at line 102 of file ZipExtraField.h.

int CZipExtraField::GetTotalSize (  )  const

Returns the total size the extra data will occupy in the archive.

Returns:
The size in bytes.

bool CZipExtraField::HasHeader ( WORD  headerID  )  [inline]

Returns the value indicating whether the extra data record with the given ID is present in the extra field.

Parameters:
headerID The ID of the extra data to check.
Returns:
true, if the extra data record with the given ID is present in the extra field; false otherwise.

Definition at line 235 of file ZipExtraField.h.

static bool CZipExtraField::HasSize ( WORD  headerID  )  [inline, static]

Returns the value indicating whether the extra data record with the given ID writes its size.

Parameters:
headerID The ID of extra data to examine.
Returns:
true, if the extra data record writes its size; false otherwise.
See also:
m_aNoSizeExtraHeadersID

Definition at line 279 of file ZipExtraField.h.

CZipExtraData* CZipExtraField::Lookup ( WORD  headerID,
int &  index 
) const

Searches the extra field for the extra data record with the given ID.

Parameters:
headerID The ID of the extra data to search.
index Receives the value of the index of the found extra data in the internal collection.
Returns:
The found extra data record or NULL, if the extra data could not be found.

CZipExtraData* CZipExtraField::Lookup ( WORD  headerID  )  const [inline]

Searches the extra field for the extra data record with the given ID.

Parameters:
headerID The ID of the extra data to search.
Returns:
The found extra data record or NULL, if the extra data could not be found.

Definition at line 220 of file ZipExtraField.h.

bool CZipExtraField::Read ( CZipStorage pStorage,
WORD  uSize 
) [protected]

Reads the extra field from buffer.

Parameters:
pStorage The storage to read the data from.
uSize The size of the data to read.
Returns:
false, if uSize was smaller than the declared extra field size; true otherwise.

void CZipExtraField::Remove ( WORD  headerID  ) 

Removes the extra data with the given ID.

Parameters:
headerID The ID of the extra data to remove.

void CZipExtraField::RemoveAt ( int  index  )  [inline]

Removes the extra data record at the given index.

Parameters:
index The index of the extra data record to remove.

Definition at line 127 of file ZipExtraField.h.

void CZipExtraField::RemoveInternalHeaders (  ) 

Removes all extra data records from the central extra field that are internally used by the ZipArchive Library.

void CZipExtraField::RemoveInternalLocalHeaders (  ) 

Removes all extra data records from the local extra field that are internally used by the ZipArchive Library.

bool CZipExtraField::Validate (  )  const [inline]

Validates the current size of the extra field.

Returns:
false, if the size is larger than allowed; false otherwise.

Definition at line 91 of file ZipExtraField.h.

void CZipExtraField::Write ( char *  buffer  )  const [protected]

Writes the extra field to buffer.

Parameters:
buffer The buffer to write to.


Member Data Documentation

CZipArray<WORD> CZipExtraField::m_aNoSizeExtraHeadersID [static]

An array of headers that do not write extra data size.

See also:
Providing Custom Data: Extra Fields

Definition at line 265 of file ZipExtraField.h.


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

The ZipArchive Library Copyright © 2000 - 2009 Artpol Software - Tadeusz Dracz. Generated at Fri Apr 24 16:46:36 2009.