#include <ZipStorage.h>
|
ZIP_SIZE_TYPE | AssureFree (ZIP_SIZE_TYPE uNeeded) |
|
void | ChangeVolume (ZIP_VOLUME_TYPE uNumber) |
|
void | ChangeVolume () |
|
void | ChangeVolumeDec () |
|
CZipString | Close (bool bWrite, bool bGetLastVolumeName=false) |
|
void | FinalizeSegm () |
|
void | Flush () |
|
void | FlushBuffers () |
|
void | FlushFile () |
|
ZIP_VOLUME_TYPE | GetCurrentVolume () const |
|
ZIP_SIZE_TYPE | GetOccupiedSpace () const |
|
ZIP_SIZE_TYPE | GetPosition () const |
|
CZipSplitNamesHandler * | GetSplitNamesHandler () |
|
const CZipSplitNamesHandler * | GetSplitNamesHandler () const |
|
CZipString | GetSplitVolumeName (ZIP_VOLUME_TYPE uVolume, bool bLast) |
|
ZipArchiveLib::CBitFlag & | GetState () |
|
void | Initialize () |
|
bool | IsBinarySplit () const |
|
bool | IsClosed (bool bArchive) const |
|
bool | IsExisting () const |
|
bool | IsExistingSegmented () const |
|
bool | IsNewSegmented () const |
|
bool | IsReadOnly () const |
|
bool | IsRegularSplit () const |
|
bool | IsSegmented () const |
|
bool | IsSpanned () const |
|
bool | IsSplit () const |
|
ZIP_FILE_USIZE | LocateSignature (char *szSignature, ZIP_SIZE_TYPE uMaxDepth) |
|
void | NextVolume (ZIP_SIZE_TYPE uNeeded) |
|
void | Open (CZipAbstractFile &af, int iMode, bool bAutoClose) |
|
void | Open (LPCTSTR lpszPathName, int iMode, ZIP_SIZE_TYPE uVolumeSize) |
|
DWORD | Read (void *pBuf, DWORD iSize, bool bAtOnce) |
|
ULONGLONG | Seek (ULONGLONG lOff, SeekType iSeekType=seekFromBeginning) |
|
void | SeekInBinary (ZIP_FILE_SIZE lOff, bool bSeekToBegin=false) |
|
bool | SetSplitNamesHandler (CZipSplitNamesHandler *pNames, bool bAutoDelete) |
|
void | UpdateSegmMode (ZIP_VOLUME_TYPE uLastVolume) |
|
ZIP_SIZE_TYPE | VolumeLeft () const |
|
void | Write (const void *pBuf, DWORD iSize, bool bAtOnce) |
|
|
class | CZipArchive |
|
class | CZipCentralDir |
|
Represents the storage layer for an archive.
Definition at line 46 of file ZipStorage.h.
The direction of the seeking operation.
- See Also
- CZipStorage::Seek
- Enumerator:
seekFromBeginning |
Start seeking from the beginning of a file.
|
seekFromEnd |
Start seeking from the end of a file.
|
seekCurrent |
Start seeking from the current position in the archive. This value can cause a volume change when a segmented archive is opened for reading.
|
Definition at line 72 of file ZipStorage.h.
Storage state.
- Enumerator:
stateOpened |
The storage file is opened.
|
stateReadOnly |
The storage file is opened as read-only.
|
stateAutoClose |
The storage file will be closed when the storage is closed.
|
stateExisting |
The storage file existed before opening.
|
stateSegmented |
The current archive is segmented.
|
stateSplit |
The current archive is split.
|
stateBinarySplit |
The current archive is binary split.
|
stateSpan |
The current archive is spanned.
|
Definition at line 54 of file ZipStorage.h.
ZIP_SIZE_TYPE CZipStorage::AssureFree |
( |
ZIP_SIZE_TYPE |
uNeeded | ) |
|
Ensures than in a segmented archive, there is enough free space on the current volume.
- Parameters
-
uNeeded | The size of the required free space in bytes. |
- Returns
- The number of free bytes on the current volume.
void CZipStorage::CallCallback |
( |
ZIP_SIZE_TYPE |
uNeeded, |
|
|
int |
iCode, |
|
|
CZipString |
szTemp |
|
) |
| |
|
protected |
Calls the segmented callback object. Throws an exception if the callback method returns false
.
- Parameters
-
uNeeded | The minimum number of free bytes required on the disk. |
iCode | The code to be passed to the callback method. |
szTemp | The string to be used as a filename (as an argument in the CZipException::Throw method) when an exception must be thrown. |
- See Also
- CZipArchive::SetSegmCallback
CZipString CZipStorage::ChangeSpannedRead |
( |
| ) |
|
|
protected |
Changes a disk when processing a spanned archive.
CZipString CZipStorage::ChangeSplitRead |
( |
| ) |
|
|
protected |
Changes a file when processing a split archive.
void CZipStorage::ChangeVolume |
( |
ZIP_VOLUME_TYPE |
uNumber | ) |
|
Changes the volume during extract operations.
- Parameters
-
uNumber | A zero-based number of the requested volume. |
void CZipStorage::ChangeVolume |
( |
| ) |
|
|
inline |
Changes the current volume to the next volume during extract operations.
Definition at line 290 of file ZipStorage.h.
void CZipStorage::ChangeVolumeDec |
( |
| ) |
|
|
inline |
Changes the current volume to the previous volume during extract operations.
Definition at line 298 of file ZipStorage.h.
CZipString CZipStorage::Close |
( |
bool |
bWrite, |
|
|
bool |
bGetLastVolumeName = false |
|
) |
| |
Closes the storage.
- Parameters
-
bWrite | Set to false , if the storage should not perform any write operations. |
bGetLastVolumeName | Set to true , if the storage should return the path. |
- Returns
- The file path of the archive or of the last volume in the archive. Only if bGetLastVolumeName is set to
true
.
void CZipStorage::EmptyWriteBuffer |
( |
| ) |
|
|
inlineprotected |
Flushes without writing. It can be used only on not segmented archives.
Definition at line 541 of file ZipStorage.h.
void CZipStorage::FinalizeSegm |
( |
| ) |
|
Closes a segmented archive in creation and reopens it as an existing segmented archive. No modifications are allowed afterwards. The archive may also turn out to be a not segmented archive.
void CZipStorage::Flush |
( |
| ) |
|
Flushes the data from the read buffer to the disk.
void CZipStorage::FlushFile |
( |
| ) |
|
|
inline |
Forces any data remaining in the file buffer to be written to the disk.
Definition at line 251 of file ZipStorage.h.
ZIP_VOLUME_TYPE CZipStorage::GetCurrentVolume |
( |
| ) |
const |
|
inline |
Returns a zero-based number of the current volume.
Definition at line 276 of file ZipStorage.h.
DWORD CZipStorage::GetFreeInBuffer |
( |
| ) |
const |
|
inlineprotected |
Returns the free space left in the write buffer.
- Returns
- The free space in bytes.
Definition at line 626 of file ZipStorage.h.
ZIP_SIZE_TYPE CZipStorage::GetFreeVolumeSpace |
( |
| ) |
const |
|
protected |
Returns the free space size on the current removable disk.
- Returns
- The free space in bytes.
ZIP_SIZE_TYPE CZipStorage::GetLastDataOffset |
( |
| ) |
|
|
inlineprotected |
Returns the file offset after the last data byte in the archive.
- Returns
- The file offset after the last data byte in the archive.
Definition at line 533 of file ZipStorage.h.
ZIP_SIZE_TYPE CZipStorage::GetOccupiedSpace |
( |
| ) |
const |
|
inline |
Returns the total size currently occupied by the archive.
- Returns
- The length of the current archive file increased by the number of bytes in the write buffer.
Definition at line 178 of file ZipStorage.h.
ZIP_SIZE_TYPE CZipStorage::GetPosition |
( |
| ) |
const |
|
inline |
Returns the position in the file, taking into account the number of bytes in the write buffer and the number of bytes before the archive.
- Returns
- The position in the file.
- Note
- For binary split archives, it returns the position from the beginning of the first part.
Definition at line 221 of file ZipStorage.h.
CZipString CZipStorage::GetSplitVolumeName |
( |
ZIP_VOLUME_TYPE |
uVolume, |
|
|
bool |
bLast |
|
) |
| |
|
inline |
Gets the expected path of a volume name in a split archive.
- Parameters
-
uVolume | The volume's zero-based index. |
bLast | If true , the volume is expected to be the last volume; false otherwise. |
- Returns
- The expected path of a volume name in a split archive.
Definition at line 115 of file ZipStorage.h.
bool CZipStorage::IsBinarySplit |
( |
| ) |
const |
|
inline |
Returns the value indicating whether the archive is a binary split archive.
- Returns
true
, if the archive is a binary split archive; false
otherwise.
Definition at line 322 of file ZipStorage.h.
bool CZipStorage::IsClosed |
( |
bool |
bArchive | ) |
const |
|
inline |
bool CZipStorage::IsExisting |
( |
| ) |
const |
|
inline |
Returns the value indicating whether the archive is an existing archive.
- Returns
true
, if the archive is an existing archive; false
, if the archive is a new archive.
Definition at line 396 of file ZipStorage.h.
bool CZipStorage::IsExistingSegmented |
( |
| ) |
const |
|
inline |
Returns the value indicating whether the archive is an existing segmented archive.
- Returns
true
, if the archive is an existing segmented archive; false
otherwise.
Definition at line 363 of file ZipStorage.h.
bool CZipStorage::IsNewSegmented |
( |
| ) |
const |
|
inline |
Returns the value indicating whether the archive is a new segmented archive.
- Returns
true
, if the archive is a new segmented archive; false
otherwise.
Definition at line 374 of file ZipStorage.h.
bool CZipStorage::IsReadOnly |
( |
| ) |
const |
|
inline |
bool CZipStorage::IsRegularSplit |
( |
| ) |
const |
|
inline |
Returns the value indicating whether the archive is a regular split archive (not binary).
- Returns
true
, if the archive is a regular split archive; false
otherwise.
Definition at line 333 of file ZipStorage.h.
bool CZipStorage::IsSegmented |
( |
| ) |
const |
|
inline |
Returns the value indicating whether the archive is a segmented archive.
- Returns
true
, if the archive is a segmented archive; false
otherwise.
Definition at line 385 of file ZipStorage.h.
bool CZipStorage::IsSpanned |
( |
| ) |
const |
|
inline |
Returns the value indicating whether the archive is a spanned archive.
- Returns
true
, if the archive is a spanned archive; false
otherwise.
Definition at line 344 of file ZipStorage.h.
bool CZipStorage::IsSplit |
( |
| ) |
const |
|
inline |
Returns the value indicating whether the archive is a split archive (binary or regular).
- Returns
true
, if the archive is a split archive; false
otherwise.
Definition at line 311 of file ZipStorage.h.
ZIP_FILE_USIZE CZipStorage::LocateSignature |
( |
char * |
szSignature, |
|
|
ZIP_SIZE_TYPE |
uMaxDepth |
|
) |
| |
Reverse-finds the location of the given signature starting from the current position in file.
- Parameters
-
szSignature | The signature to locate. |
uMaxDepth | The maximum number of bytes to search for szSignature. |
- Returns
- The location of the signature.
void CZipStorage::NextVolume |
( |
ZIP_SIZE_TYPE |
uNeeded | ) |
|
Changes volumes during writing to a segmented archive.
- Parameters
-
uNeeded | The number of bytes needed in the volume. |
void CZipStorage::Open |
( |
CZipAbstractFile & |
af, |
|
|
int |
iMode, |
|
|
bool |
bAutoClose |
|
) |
| |
void CZipStorage::Open |
( |
LPCTSTR |
lpszPathName, |
|
|
int |
iMode, |
|
|
ZIP_SIZE_TYPE |
uVolumeSize |
|
) |
| |
bool CZipStorage::OpenFile |
( |
LPCTSTR |
lpszName, |
|
|
UINT |
uFlags, |
|
|
bool |
bThrow = true |
|
) |
| |
|
protected |
Opens a physical file.
- Parameters
-
lpszName | The name of the file to open. |
uFlags | The file open flags. |
bThrow | If true , throw an exception in case of failure. |
- Returns
true
if successful; false
otherwise.
DWORD CZipStorage::Read |
( |
void * |
pBuf, |
|
|
DWORD |
iSize, |
|
|
bool |
bAtOnce |
|
) |
| |
Reads a chunk of data from the archive.
- Parameters
-
pBuf | The buffer to receive the data. |
iSize | The number of bytes to read. |
bAtOnce | If true , no volume change is allowed during reading. If the requested number of bytes cannot be read from a single volume, an exception is thrown. |
CZipString CZipStorage::RenameLastFileInSplitArchive |
( |
| ) |
|
|
protected |
Renames the last segment file in a split archive when finalizing the archive.
- Returns
- The name of the last segment.
Performs the seeking operation on the m_pFile.
- Parameters
-
lOff | The new position in the file. |
iSeekType | The direction of the seek operation. It can be one of the SeekType values. |
void CZipStorage::SeekInBinary |
( |
ZIP_FILE_SIZE |
lOff, |
|
|
bool |
bSeekToBegin = false |
|
) |
| |
Performs the seeking operation in a binary split archive.
- Parameters
-
lOff | The offset to move the file pointer. |
bSeekToBegin | If true , the file pointer is moved to the beginning before seeking. If false , the file pointer is moved relatively to the current position. |
void CZipStorage::UpdateSegmMode |
( |
ZIP_VOLUME_TYPE |
uLastVolume | ) |
|
Called only by CZipCentralDir::Read when opening an existing archive.
- Parameters
-
uLastVolume | The number of the volume the central directory is on. |
ZIP_SIZE_TYPE CZipStorage::VolumeLeft |
( |
| ) |
const |
Returns the number of free bytes on the current volume.
- Returns
- The number of free bytes on the current volume.
void CZipStorage::Write |
( |
const void * |
pBuf, |
|
|
DWORD |
iSize, |
|
|
bool |
bAtOnce |
|
) |
| |
Writes a chunk of data to the archive.
- Parameters
-
pBuf | The buffer with data. |
iSize | The number of bytes to write. |
bAtOnce | If true , the whole chunk must fit in the current volume. If there is not enough free space, a volume change is performed. |
void CZipStorage::WriteInternalBuffer |
( |
const char * |
pBuf, |
|
|
DWORD |
uSize |
|
) |
| |
|
protected |
Writes data to the internal buffer.
- Parameters
-
*pBuf | The buffer to copy the data from. |
uSize | The number of bytes to write. |
char CZipStorage::m_gszExtHeaderSignat[] |
|
static |
The signature of the extended header.
Definition at line 503 of file ZipStorage.h.
int CZipStorage::m_iLocateBufferSize |
|
protected |
int CZipStorage::m_iWriteBufferSize |
|
protected |
CZipAbstractFile* CZipStorage::m_pFile |
Represents the physical storage for the archive (or the current archive segment in segmented archives).
Definition at line 498 of file ZipStorage.h.
CZipAutoBuffer CZipStorage::m_pWriteBuffer |
|
protected |
The write buffer caching data.
Definition at line 652 of file ZipStorage.h.
ZIP_SIZE_TYPE CZipStorage::m_uBytesBeforeZip |
|
protected |
DWORD CZipStorage::m_uBytesInWriteBuffer |
|
protected |
The number of bytes available in the write buffer.
Definition at line 640 of file ZipStorage.h.
ZIP_SIZE_TYPE CZipStorage::m_uBytesWritten |
|
protected |
Stores the number of bytes that have been written physically to the current segment. Used only when processing a segmented archive in creation.
Definition at line 658 of file ZipStorage.h.
ZIP_SIZE_TYPE CZipStorage::m_uCurrentVolSize |
|
protected |
The value it holds depends on the segmentation mode:
- A split archive: the total size of the current volume.
- A spanned archive: the free space on the current volume.
Definition at line 647 of file ZipStorage.h.
ZIP_VOLUME_TYPE CZipStorage::m_uCurrentVolume |
|
protected |
The current volume number in a segmented archive. The value is zero-based.
Definition at line 664 of file ZipStorage.h.
ZIP_SIZE_TYPE CZipStorage::m_uSplitData |
|
protected |
The value it holds, depends on the current mode:
- An opened existing split archive: the number of the last volume ( usually the one with the "zip" extension).
- A split archive in creation: the size of the volume.
This method is used only when processing split archives.
Definition at line 635 of file ZipStorage.h.
The documentation for this class was generated from the following file: