CEZCompressor Class Reference
class CEZCompressor : public CEZZStream
|
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
CompressL()
) if the buffers are large enough (for example if an input file is mmap'ed), or can be done by repeated calls of the
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.
Note: In this version of the library a windowBits value of 8 is unsupported due to a problem with the window size being set to 256 bytes. Although a value of 8 will be accepted by the
CEZCompressor
constructors, as it is being changed internally by Zlib from 8 to 9, it will not be possible to use the same value for decompression. This is because the Zlib functions called by the
CEZDecompressor
constructors do not make the same change internally and as a result a KEZlibErrData is returned when calling InflateL(). It is therefore advised that for this version of the library windowBits of 9 is used in place of 8.
Public Member Functions
|
|
~CEZCompressor
()
|
IMPORT_C void
|
CompressL
(
TDes8
&, const
TDesC8
&,
TInt
)
|
IMPORT_C
TBool
|
DeflateL
()
|
IMPORT_C
CEZCompressor
*
|
NewL
(
MEZBufferManager
&,
TInt
,
TInt
,
TInt
,
TStrategy
)
|
IMPORT_C
CEZCompressor
*
|
NewL
(
MEZBufferManager
&, const
TDesC8
&,
TInt
,
TInt
,
TInt
,
TStrategy
)
|
IMPORT_C
CEZCompressor
*
|
NewLC
(
MEZBufferManager
&,
TInt
,
TInt
,
TInt
,
TStrategy
)
|
IMPORT_C
CEZCompressor
*
|
NewLC
(
MEZBufferManager
&, const
TDesC8
&,
TInt
,
TInt
,
TInt
,
TStrategy
)
|
IMPORT_C void
|
ResetL
(
MEZBufferManager
&)
|
Constructor & Destructor Documentation
CEZCompressor(MEZBufferManager *)
Member Functions Documentation
CompressL(TDes8 &, const TDesC8 &, TInt)
IMPORT_C void
|
CompressL
|
(
|
TDes8
&
|
aDestination,
|
|
const
TDesC8
&
|
aSource,
|
|
TInt
|
aLevel = EDefaultCompression
|
|
)
|
[static]
|
Compresses the data in the given buffer
-
leave
-
KEZLibErrBuf There is a problem with the buffer
-
leave
-
KEZLIbErrStream There is a problem with the stream
-
leave
-
... Any of the system wide error codes
Parameters
TDes8
& aDestination
|
the target buffer for the compressed data
|
const
TDesC8
& aSource
|
the buffer containing the data to be compressed
|
TInt
aLevel = EDefaultCompression
|
the level of compression
|
ConstructL(TInt, const TUint8 *, TInt, TInt, TInt, TStrategy)
ConstructL(TInt, TInt, TInt, TStrategy)
DeflateL()
IMPORT_C
TBool
|
DeflateL
|
(
|
)
|
|
Compress the data to the buffer in stages, return value indicates if the compression has finalised or if further calls are necessary
-
leave
-
KEZlibErrStream There is a problem with the stream
-
leave
-
KEZlibErrBuf There is a problem with the buffer
-
leave
-
KEZlibErrUnexpected Unexpected programming error
-
leave
-
... Any of the System wide error codes
NewL(MEZBufferManager &, TInt, TInt, TInt, TStrategy)
Parameters
MEZBufferManager
& aInit
|
buffer manager to handle both input and output buffers
|
TInt
aLevel = EDefaultCompression
|
compression levels
|
TInt
aWindowBits = EMaxWBits
|
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 = EDefMemLevel
|
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.
|
TStrategy
aStrategy = EDefaultStrategy
|
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
|
NewL(MEZBufferManager &, const TDesC8 &, TInt, TInt, TInt, TStrategy)
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 = EDefaultCompression
|
compression level
|
TInt
aWindowBits = EMaxWBits
|
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 = EDefMemLevel
|
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.
|
TStrategy
aStrategy = EDefaultStrategy
|
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
|
NewLC(MEZBufferManager &, TInt, TInt, TInt, TStrategy)
Parameters
MEZBufferManager
& aInit
|
buffer manager to handle both input and output buffers
|
TInt
aLevel = EDefaultCompression
|
compression levels
|
TInt
aWindowBits = EMaxWBits
|
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 = EDefMemLevel
|
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.
|
TStrategy
aStrategy = EDefaultStrategy
|
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
|
NewLC(MEZBufferManager &, const TDesC8 &, TInt, TInt, TInt, TStrategy)
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 = EDefaultCompression
|
compression level
|
TInt
aWindowBits = EMaxWBits
|
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 = EDefMemLevel
|
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.
|
TStrategy
aStrategy = EDefaultStrategy
|
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
|
ResetL(MEZBufferManager &)
Resets the current compression operation, with the new buffer manager
-
leave
-
... Any of the system wide error codes
Parameters
MEZBufferManager
& aInit
|
new buffer manager to handle the new input and output buffers
|
Member Enumerations Documentation
Enum anonymous
Enumerators
EDefaultCompression = Z_DEFAULT_COMPRESSION
|
|
ENoCompression = Z_NO_COMPRESSION
|
|
EBestSpeed = Z_BEST_SPEED
|
|
EBestCompression = Z_BEST_COMPRESSION
|
|
Enum anonymous
Window Bits - the base two logarithm of the window size (the size of the history buffer)
Enum anonymous
Memory level - specifies how much memory should be allocated for the internal compression state
Enumerators
EDefMemLevel = MAX_MEM_LEVEL
|
|
Enum anonymous
Enumerators
EDeflateInitlialiserError = EUnexpected + 1
|
|
EDeflateTerminated
|
|
Enum TDeflationState
Enumerators
ENoFlush
|
|
EFinish
|
|
EFinalize
|
|
ETerminated
|
|
Enum TStrategy
Compression strategy - used to tune the compression algorithm
Enumerators
EDefaultStrategy = Z_DEFAULT_STRATEGY
|
Use for normal data
|
EFiltered = Z_FILTERED
|
Use for data produced by a filter (or predictor)
|
EHuffmanOnly = Z_HUFFMAN_ONLY
|
Force Huffman encoding only (no string match)
|
Member Data Documentation
MEZBufferManager * iBufferInit
TDeflationState
iDeflationState
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.