CEZDecompressor Class Reference
class CEZDecompressor : public CEZZStream
|
The
CEZDecompressor
class provides in-memory de-compression functions, including integrity checks of the compressed data. This version of the library supports only one compression / de-compression method (deflation / inflation). De-compression can be done in a single step (using
DecompressL()
) if the buffers are large enough (for example if an input file is mmap'ed), or can be done by repeated calls of the
InflateL()
function. The source data is de-compressed to the target buffer (both source and target contained within the buffer manager argument).
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.
Constructor & Destructor Documentation
CEZDecompressor(MEZBufferManager *)
CEZDecompressor(MEZBufferManager *, const TUint8 *, TInt)
Member Functions Documentation
ConstructL(TInt)
void
|
ConstructL
|
(
|
TInt
|
aWindowBits
|
)
|
[private]
|
DecompressL(TDes8 &, const TDesC8 &)
IMPORT_C void
|
DecompressL
|
(
|
TDes8
&
|
aDestination,
|
|
const
TDesC8
&
|
aSource
|
|
)
|
[static]
|
De-compresses the data in the given buffer
-
leave
-
KEZLibErrBuf There is a problem with the buffer
-
leave
-
KEZLIbErrData There is a problem with the data
-
leave
-
... Any of the system wide error codes
Parameters
TDes8
& aDestination
|
the target buffer for the de-compressed data
|
const
TDesC8
& aSource
|
the buffer containing the compressed data
|
InflateL()
IMPORT_C
TBool
|
InflateL
|
(
|
)
|
|
De-compress the data to the buffer in stages, return value indicates if the de-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
-
KEZlibErrData There is a problem with the data
-
leave
-
KEZlibErrUnexpected Unexpected programming error
-
leave
-
... Any of the System wide error codes
NewL(MEZBufferManager &, TInt)
Parameters
MEZBufferManager
& aInit
|
buffer manager to handle both input and output buffers
|
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.
|
NewL(MEZBufferManager &, const TDesC8 &, TInt)
Parameters
MEZBufferManager
& aInit
|
buffer manager to handle both input and output buffers
|
const
TDesC8
& aDictionary
|
used to initialize the de-compression dictionary from the given byte sequence. The compressor and decompressor must use exactly the same dictionary.
|
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.
|
NewLC(MEZBufferManager &, TInt)
Parameters
MEZBufferManager
& aInit
|
buffer manager to handle both input and output buffers
|
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.
|
NewLC(MEZBufferManager &, const TDesC8 &, TInt)
Parameters
MEZBufferManager
& aInit
|
buffer manager to handle both input and output buffers
|
const
TDesC8
& aDictionary
|
used to initialize the de-compression dictionary from the given byte sequence. The compressor and decompressor must use exactly the same dictionary.
|
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.
|
ResetL(MEZBufferManager &)
Resets the current de-compression operation, with the new buffer manager
-
leave
-
KEZlibErrStream There is a problem with the stream
-
leave
-
... Any of the System wide error codes
Parameters
MEZBufferManager
& aInit
|
new buffer manager to handle the new input and output buffers
|
SetDictionaryL()
void
|
SetDictionaryL
|
(
|
)
|
[private]
|
Member Enumerations Documentation
Enum anonymous
Decompression panic values
Enumerators
EInflateInitlialiserError = EUnexpected + 1
|
|
EInflateVersionError
|
|
EInflateTerminated
|
|
EInflateDictionaryError
|
|
Enum anonymous
Window Bits - the base two logarithm of the window size (the size of the history buffer)
Enum TInflationState
Enumerators
ENoFlush
|
|
EFinalize
|
|
ETerminated
|
|
Member Data Documentation
MEZBufferManager * iBufferInit
const TUint8 * iDictionary
const
TUint8
*
|
iDictionary
|
[private]
|
TInt
iDictionaryLength
TInt
|
iDictionaryLength
|
[private]
|
TInflationState
iInflationState
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.