Skip Navigation Links
Skip Navigation LinksHome > ZipArchive > How to Use > API Documentation
The ZipArchive Library
ZipArchiveLib::CDeflateCompressor Class Reference

#include <DeflateCompressor.h>

Inheritance diagram for ZipArchiveLib::CDeflateCompressor:
Inheritance graph

Classes

struct  COptions

Public Member Functions

bool CanProcess (WORD uMethod)
 CDeflateCompressor (CZipStorage *pStorage)
void Compress (const void *pBuffer, DWORD uSize)
int CompressionLevelToNative (CompressionLevel iLevel)
DWORD Decompress (void *pBuffer, DWORD uSize)
void FinishCompression (bool bAfterException)
void FinishDecompression (bool bAfterException)
COffsetsArrayGetOffsetsArray () const
const CZipCompressor::COptionsGetOptions () const
void InitCompression (int iLevel, CZipFileHeader *pFile, CZipCryptograph *pCryptograph)
void InitDecompression (CZipFileHeader *pFile, CZipCryptograph *pCryptograph)
Public Member Functions inherited from ZipArchiveLib::CBaseLibCompressor
 CBaseLibCompressor (CZipStorage *pStorage)
Public Member Functions inherited from CZipCompressor
virtual void FinishCompression (bool ZIP_UNUSED bAfterException)
virtual void FinishDecompression (bool ZIP_UNUSED bAfterException)
virtual void InitCompression (int ZIP_UNUSED iLevel, CZipFileHeader *pFile, CZipCryptograph *pCryptograph)
bool PrepareForSeek (CZipFileHeader *pCurrentFile, COffsetsPair *pPair)
void UpdateOptions (const COptionsMap &optionsMap)

Protected Member Functions

int ConvertInternalError (int iErr) const
bool IsCodeErrorOK (int iErr) const
void UpdateOptions (const CZipCompressor::COptions *pOptions)
Protected Member Functions inherited from ZipArchiveLib::CBaseLibCompressor
void CheckForError (int iErr)
void EmptyPtrList ()
void SetOpaque (void **opaque, const COptions *pOptions)
Protected Member Functions inherited from CZipCompressor
 CZipCompressor (CZipStorage *pStorage)
DWORD FillBuffer ()
void FlushWriteBuffer ()
void InitBuffer ()
void ReleaseBuffer ()
void ThrowError (int iErr, bool bInternal=false)
void UpdateCrc (const void *pBuffer, DWORD uSize)
void UpdateFileCrc (const void *pBuffer, DWORD uSize)
virtual void UpdateOptions (const COptions *ZIP_UNUSED pOptions)
void WriteBuffer (char *pBuffer, DWORD uSize)

Additional Inherited Members

Public Types inherited from CZipCompressor
enum  CompressionLevel { levelDefault = 0x7FFFFFFE , levelStore = 0 , levelFastest = 1 , levelBest = 0x7FFFFFFF }
enum  CompressionMethod {
  methodStore = 0 , methodDeflate = 8 , methodBzip2 = 12 , methodZstd = 93 ,
  methodWinZipAes = 99
}
enum  CompressorType { typeDeflate = 1 , typeBzip2 , typePPMd , typeZstd }
typedef CZipArray< COffsetsPair * > CZipOffsetsPairsArray
Static Public Member Functions inherited from CZipCompressor
static CZipCompressorCreateCompressor (WORD uMethod, CZipStorage *pStorage)
static bool IsCompressionSupported (WORD uCompressionMethod)
Public Attributes inherited from CZipCompressor
ZIP_SIZE_TYPE m_uComprLeft
 The number of bytes left to compress.
DWORD m_uCrc32
 The CRC32 file checksum.
ZIP_SIZE_TYPE m_uUncomprLeft
 The number of bytes left to decompress.
Static Protected Member Functions inherited from ZipArchiveLib::CBaseLibCompressor
static void * _zipalloc (void *opaque, UINT items, UINT size)
static void _zipfree (void *opaque, void *address)
Protected Attributes inherited from ZipArchiveLib::CBaseLibCompressor
bool m_bDecompressionDone
Protected Attributes inherited from CZipCompressor
CZipAutoBuffer m_pBuffer
 A buffer that receives compressed data or provides data for decompression.
CZipCryptographm_pCryptograph
 The current cryptograph.
CZipFileHeaderm_pFile
 The file header being compressed or decompressed.
CZipStoragem_pStorage
 The current storage object.

Detailed Description

Compresses and decompresses data using the Zlib library.

Constructor & Destructor Documentation

◆ CDeflateCompressor()

ZipArchiveLib::CDeflateCompressor::CDeflateCompressor ( CZipStorage * pStorage)

Initializes a new instance of the CDeflateCompressor class.

Parameters
pStorageThe current storage object.

Member Function Documentation

◆ CanProcess()

bool ZipArchiveLib::CDeflateCompressor::CanProcess ( WORD uMethod)
inlinevirtual

Returns the value indicating whether the current CZipCompressor object supports the given compression method.

Parameters
uMethodThe compression method. It can be one of the CompressionMethod values.
Returns
true, if the compression method is supported; false otherwise.

Implements CZipCompressor.

◆ Compress()

void ZipArchiveLib::CDeflateCompressor::Compress ( const void * pBuffer,
DWORD uSize )
virtual

Compresses the given data.

Parameters
pBufferThe buffer that holds the data to compress.
uSizeThe size of pBuffer.
See also
InitCompression
FinishCompression

Implements CZipCompressor.

◆ CompressionLevelToNative()

int ZipArchiveLib::CDeflateCompressor::CompressionLevelToNative ( CompressionLevel iLevel)
virtual

Converts a generic compression level to the compressor's native level.

Parameters
iLevelThe generic compression level.
Returns
The native compression level for this compressor.

Implements CZipCompressor.

◆ ConvertInternalError()

int ZipArchiveLib::CDeflateCompressor::ConvertInternalError ( int iErr) const
inlineprotectedvirtual

Converts an internal error code of the compressor to the ZipArchive Library error code.

Parameters
iErrAn internal error code.
Returns
A ZipArchive Library error code.

Reimplemented from CZipCompressor.

◆ Decompress()

DWORD ZipArchiveLib::CDeflateCompressor::Decompress ( void * pBuffer,
DWORD uSize )
virtual

Decompresses the given data.

Parameters
pBufferThe buffer that receives the decompressed data.
uSizeThe size of pBuffer.
Returns
The number of bytes decompressed and written to pBuffer.
Note
This method should be called repeatedly until it returns 0.
See also
InitDecompression
FinishDecompression

Implements CZipCompressor.

◆ FinishCompression()

void ZipArchiveLib::CDeflateCompressor::FinishCompression ( bool bAfterException)

The method called at the end of the compression process.

Parameters
bAfterExceptionSet to true, if an exception occurred before or to false otherwise.

◆ FinishDecompression()

void ZipArchiveLib::CDeflateCompressor::FinishDecompression ( bool bAfterException)

The method called at the end of the decompression process.

Parameters
bAfterExceptionSet to true, if an exception occurred before or to false otherwise.

◆ GetOffsetsArray()

COffsetsArray * ZipArchiveLib::CDeflateCompressor::GetOffsetsArray ( ) const
inline

Retrieves the offsets array that gives the location of the synchronization blocks. This method should be called just after compressing a file. The array pointer will be invalid with the next compression operation or when a file is decompressed with a method different than the deflate method or when an archive is closed. You can save the array to a buffer with the CZipCompressor::COffsetsArray::Save method.

Returns
The offsets array created for the recently compressed file.
See also
Creating Seekable Compressed Data

CZipCompressor::COffsetsArray
COptions::m_iSyncRatio
COptions::m_bCreateOffsetsArray

◆ GetOptions()

const CZipCompressor::COptions * ZipArchiveLib::CDeflateCompressor::GetOptions ( ) const
inlinevirtual

Returns the current options of the compressor.

Returns
The current options for the compressor.
See also
Compressing Data
CZipArchive::SetCompressionOptions
UpdateOptions

Reimplemented from CZipCompressor.

◆ InitCompression()

void ZipArchiveLib::CDeflateCompressor::InitCompression ( int iLevel,
CZipFileHeader * pFile,
CZipCryptograph * pCryptograph )

The method called when a new file is opened for compression.

Parameters
iLevelThe compression level. Use numeric values here, not CZipCompressor::CompressionLevel values.
pFileThe file being compressed.
pCryptographThe current CZipCryptograph. It can be NULL, if no encryption is used.

◆ InitDecompression()

void ZipArchiveLib::CDeflateCompressor::InitDecompression ( CZipFileHeader * pFile,
CZipCryptograph * pCryptograph )
virtual

The method called when a new file is opened for extraction.

Parameters
pFileThe file being extracted.
pCryptographThe current CZipCryptograph. It can be NULL, if no decryption is used.
See also
Decompress
FinishDecompression

Reimplemented from ZipArchiveLib::CBaseLibCompressor.

◆ IsCodeErrorOK()

bool ZipArchiveLib::CDeflateCompressor::IsCodeErrorOK ( int iErr) const
inlineprotectedvirtual

Checks whether iErr value is an error code.

Parameters
iErrThe code to check.
Returns
true, if iErr is an error code; false otherwise.

Implements ZipArchiveLib::CBaseLibCompressor.

◆ UpdateOptions()

void ZipArchiveLib::CDeflateCompressor::UpdateOptions ( const CZipCompressor::COptions * pOptions)
inlineprotected

Updates the current options with the new options.

Parameters
pOptionsThe new options to apply.
See also
CDeflateCompressor::COptions

The documentation for this class was generated from the following file:
Back To Top Up