diff -r 000000000000 -r e4d67989cc36 compressionlibs/ziplib/src/ezlib/zstream.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compressionlibs/ziplib/src/ezlib/zstream.cpp Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,117 @@ +// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#include + +CEZZStream::CEZZStream() : iOutputPointer(NULL), iOutputBufferLength(0) + { + + } + +/** +Set the stream's input buffer + +@param aInputData the input buffer for this stream +*/ +EXPORT_C void CEZZStream::SetInput(const TDesC8& aInputData) + { + iStream.avail_in = aInputData.Size(); + iStream.next_in = STATIC_CAST(Bytef* ,CONST_CAST(TUint8 *,aInputData.Ptr())); + } + +/** +Set the stream's output buffer + +@param aOutputData the output buffer for this stream +*/ +EXPORT_C void CEZZStream::SetOutput(TDes8& aOutputData) + { + iOutputPointer = STATIC_CAST(Bytef* ,CONST_CAST(TUint8 *,aOutputData.Ptr())); + iOutputBufferLength = aOutputData.MaxSize(); + iStream.avail_out = iOutputBufferLength; + iStream.next_out = iOutputPointer; + } + +/** +Return the progress of the current operation - that is the percentage of bytes written / read + +@param aTotalLength the total number of bytes to read / write +@return the progress as a percentage - the number of bytes written / read out of the total target +*/ +EXPORT_C TInt CEZZStream::Progress(TInt aTotalLength) const + { + return (aTotalLength == 0) ? 100 : ((iStream.total_in * 100) / aTotalLength); + } + +/** +Return the total number of bytes output so far + +@return the total number of bytes output so far +*/ +EXPORT_C TInt CEZZStream::TotalOut() const + { + return iStream.total_out; + } + +/** +Return the total number of input bytes read so far + +@return the total number of input bytes read so far +*/ +EXPORT_C TInt CEZZStream::TotalIn() const + { + return iStream.total_in; + } + +/** +Return the value of the uncompressed data + +@return the value of the uncompressed data +*/ +EXPORT_C TInt32 CEZZStream::Adler32() const + { + return iStream.adler; + } + +/** +Return the number of bytes available at the next input byte + +@return the number of bytes available at the next input byte +*/ +EXPORT_C TInt CEZZStream::AvailIn() const + { + return iStream.avail_in; + } + +/** +Return the remaining free space at next output byte target + +@return the remaining free space at next output byte target +*/ +EXPORT_C TInt CEZZStream::AvailOut() const + { + return iStream.avail_out; + } + +/** +Return a decriptor pointer to the output buffer + +@return a decriptor pointer to the output buffer +*/ +EXPORT_C TPtrC8 CEZZStream::OutputDescriptor() const + { + return TPtrC8(iOutputPointer,iOutputBufferLength - iStream.avail_out); + } +