#include <EZCompressor.h>
Link against:
ezlib.lib
class CEZCompressor : public CEZZStream;
Description
The CEZCompressor class provides in-memory compression functions, including integrity checks of the uncompressed data. This
version of the library supports only one compression method (deflation). Compression can be done in a single step (using CEZCompressor::CompressL(TDes8 &,const TDesC8 &,TInt)
) if the buffers are large enough (for example if an input file is mmap'ed), or can be done by repeated calls of the CEZCompressor::DeflateL()
function. The source data is compressed to the target buffer (both source and target contained within the buffer manager
argument), and various other arguments distinguish the different compression settings.
Derivation
CBase
-
Base class for all classes to be instantiated on the heap.
CEZCompressor
- The CEZCompressor class provides in-memory compression functions, including inte...
Members
Defined in CEZCompressor
:
CompressL(TDes8 &,const TDesC8 &,TInt)
Compresses the data in the given buffer
DeflateL()
Compress the data to the buffer in stages, return value indicates if the compres...
EBestCompression
EBestSpeed
EDefMemLevel
EDefaultCompression
EDefaultStrategy
Use for normal data
EDeflateInitlialiserError
EDeflateTerminated
EFiltered
Force Huffman encoding only (no string match)
EHuffmanOnly
Use for data produced by a filter (or predictor)
EMaxWBits
ENoCompression
NewL(MEZBufferManager &,TInt,TInt,TInt,TStrategy)
Creates a new CEZCompressor object
NewL(MEZBufferManager &,const TDesC8 &,TInt,TInt,TInt,TStrategy)
Overload of CEZCompressor constructor takes aDictionary argument
NewLC(MEZBufferManager &,TInt,TInt,TInt,TStrategy)
Creates a new CEZCompressor object and leaves it on the CleanupStack
NewLC(MEZBufferManager &,const TDesC8 &,TInt,TInt,TInt,TStrategy)
Overload of CEZCompressor constructor takes aDictionary argument
ResetL(MEZBufferManager &)
Resets the current compression operation, with the new buffer manager
TStrategy
Compression strategy - used to tune the compression algorithm
anonymous
Compression levels
anonymous
Window Bits - the base two logarithm of the window size (the size of the history...
anonymous
Memory level - specifies how much memory should be allocated for the internal co...
anonymous
Compression panic values
Inherited from CBase
:
Inherited from CEZZStream
:
Construction and destruction
NewLC(MEZBufferManager &,TInt,TInt,TInt,TStrategy)
IMPORT_C static CEZCompressor* NewLC(MEZBufferManager &aInit, TInt aLevel=EDefaultCompression, TInt aWindowBits=EMaxWBits,
TInt aMemLevel=EDefMemLevel, TStrategy aStrategy=EDefaultStrategy);
Description
Creates a new CEZCompressor object and leaves it on the CleanupStack
Parameters
MEZBufferManager &aInit |
buffer manager to handle both input and output buffers
|
TInt aLevel |
compression levels
|
TInt aWindowBits |
the base two logarithm of the window size (the size of the history buffer). It should be in the range 8..15 for this version
of the library. Larger values of this parameter result in better compression at the expense of memory usage.
|
TInt aMemLevel |
specifies how much memory should be allocated for the internal compression state. memLevel=1 uses minimum memory but is slow
and reduces compression ratio; memLevel=9 uses maximum memory for optimal speed.
|
CEZCompressor::TStrategy aStrategy |
compression strategy - used to tune the compression algorithm. The strategy parameter only affects the compression ratio but
not the correctness of the compressed output even if it is not set appropriately
|
|
Return value
See also:
NewL(MEZBufferManager &,TInt,TInt,TInt,TStrategy)
IMPORT_C static CEZCompressor* NewL(MEZBufferManager &aInit, TInt aLevel=EDefaultCompression, TInt aWindowBits=EMaxWBits,
TInt aMemLevel=EDefMemLevel, TStrategy aStrategy=EDefaultStrategy);
Description
Creates a new CEZCompressor object
Parameters
MEZBufferManager &aInit |
buffer manager to handle both input and output buffers
|
TInt aLevel |
compression levels
|
TInt aWindowBits |
the base two logarithm of the window size (the size of the history buffer). It should be in the range 8..15 for this version
of the library. Larger values of this parameter result in better compression at the expense of memory usage.
|
TInt aMemLevel |
specifies how much memory should be allocated for the internal compression state. memLevel=1 uses minimum memory but is slow
and reduces compression ratio; memLevel=9 uses maximum memory for optimal speed.
|
CEZCompressor::TStrategy aStrategy |
compression strategy - used to tune the compression algorithm. The strategy parameter only affects the compression ratio but
not the correctness of the compressed output even if it is not set appropriately
|
|
Return value
See also:
NewLC(MEZBufferManager &,const TDesC8 &,TInt,TInt,TInt,TStrategy)
IMPORT_C static CEZCompressor* NewLC(MEZBufferManager &aInit, const TDesC8 &aDictionary, TInt aLevel=EDefaultCompression,
TInt aWindowBits=EMaxWBits, TInt aMemLevel=EDefMemLevel, TStrategy aStrategy=EDefaultStrategy);
Description
Overload of CEZCompressor constructor takes aDictionary argument
Parameters
MEZBufferManager &aInit |
buffer manager to handle both input and output buffers
|
const TDesC8 &aDictionary |
used to initialize the compression dictionary from the given byte sequence without producing any compressed output. The compressor
and decompressor must use exactly the same dictionary. The dictionary should consist of strings (byte sequences) that are
likely to be encountered later in the data to be compressed, with the most commonly used strings preferably put towards the
end of the dictionary. Using a dictionary is most useful when the data to be compressed is short and can be predicted with
good accuracy; the data can then be compressed better than with the default empty dictionary.
|
TInt aLevel |
compression level
|
TInt aWindowBits |
the base two logarithm of the window size (the size of the history buffer). It should be in the range 8..15 for this version
of the library. Larger values of this parameter result in better compression at the expense of memory usage.
|
TInt aMemLevel |
specifies how much memory should be allocated for the internal compression state. memLevel=1 uses minimum memory but is slow
and reduces compression ratio; memLevel=9 uses maximum memory for optimal speed.
|
CEZCompressor::TStrategy aStrategy |
compression strategy - used to tune the compression algorithm. The strategy parameter only affects the compression ratio but
not the correctness of the compressed output even if it is not set appropriately
|
|
Return value
See also:
NewL(MEZBufferManager &,const TDesC8 &,TInt,TInt,TInt,TStrategy)
IMPORT_C static CEZCompressor* NewL(MEZBufferManager &aInit, const TDesC8 &aDictionary, TInt aLevel=EDefaultCompression, TInt
aWindowBits=EMaxWBits, TInt aMemLevel=EDefMemLevel, TStrategy aStrategy=EDefaultStrategy);
Description
Overload of CEZCompressor constructor takes aDictionary argument
Parameters
MEZBufferManager &aInit |
buffer manager to handle both input and output buffers
|
const TDesC8 &aDictionary |
used to initialize the compression dictionary from the given byte sequence without producing any compressed output. The compressor
and decompressor must use exactly the same dictionary. The dictionary should consist of strings (byte sequences) that are
likely to be encountered later in the data to be compressed, with the most commonly used strings preferably put towards the
end of the dictionary. Using a dictionary is most useful when the data to be compressed is short and can be predicted with
good accuracy; the data can then be compressed better than with the default empty dictionary.
|
TInt aLevel |
compression level
|
TInt aWindowBits |
the base two logarithm of the window size (the size of the history buffer). It should be in the range 8..15 for this version
of the library. Larger values of this parameter result in better compression at the expense of memory usage.
|
TInt aMemLevel |
specifies how much memory should be allocated for the internal compression state. memLevel=1 uses minimum memory but is slow
and reduces compression ratio; memLevel=9 uses maximum memory for optimal speed.
|
CEZCompressor::TStrategy aStrategy |
compression strategy - used to tune the compression algorithm. The strategy parameter only affects the compression ratio but
not the correctness of the compressed output even if it is not set appropriately
|
|
Return value
See also:
ResetL(MEZBufferManager &)
IMPORT_C void ResetL(MEZBufferManager &aInit);
Description
Resets the current compression operation, with the new buffer manager
Parameters
MEZBufferManager &aInit |
new buffer manager to handle the new input and output buffers
|
|
Leave codes
... |
Any of the system wide error codes
|
|
IMPORT_C TBool DeflateL();
Description
Compress the data to the buffer in stages, return value indicates if the compression has finalised or if further calls are
necessary
Return value
TBool
|
ETrue if the function must be called again, EFalse if compression is finalised
|
|
Leave codes
KEZlibErrStream |
There is a problem with the stream
|
KEZlibErrBuf |
There is a problem with the buffer
|
KEZlibErrUnexpected |
Unexpected programming error
|
... |
Any of the System wide error codes
|
|
CompressL(TDes8 &,const TDesC8 &,TInt)
IMPORT_C static void CompressL(TDes8 &aDestination, const TDesC8 &aSource, TInt aLevel=EDefaultCompression);
Description
Compresses the data in the given buffer
Parameters
TDes8 &aDestination |
the target buffer for the compressed data
|
const TDesC8 &aSource |
the buffer containing the data to be compressed
|
TInt aLevel |
the level of compression
|
|
Leave codes
KEZLibErrBuf |
There is a problem with the buffer
|
KEZLIbErrStream |
There is a problem with the stream
|
... |
Any of the system wide error codes
|
|
TStrategy
Description
Compression strategy - used to tune the compression algorithm
n/a
Description
Compression levels
n/a
Description
Window Bits - the base two logarithm of the window size (the size of the history buffer)
n/a
Description
Memory level - specifies how much memory should be allocated for the internal compression state
n/a
Description
Compression panic values