Hi all,

I'm having problems getting ZlibCompressor/ZlibDecompressor to work
and was wondering if anyone had any information that could help me.

I am using ZlibCompressor and ZlibDecompressor in an existing network
framework, so I am not connecting it to any other
BufferedTransformations.  I do a Put() and a Flush() on the source
side to force the end of a zlib message.  I then do a Get() on the
receiving side, but there are usually no bytes available.  The source
side's Flush() does not seem to be causing zlib end messages.  Or
maybe I am  just using the API wrong.

Here are some code snippets:

When compressing on the source side, I have tried Put() and
PutMessageEnd() followed by a hard flush:

// put data into the compressor
m_ZlibCompressor.PutMessageEnd(reinterpret_cast<byte*>(data), size);
// flush it to mark the end of a zlib message
bool bFlushRet = m_ZlibCompressor.Flush(true);
// get size of compressed data
size_t outsize =
static_cast<size_t>(m_ZlibCompressor.MaxRetrievable());
m_ZlibCompressor.Get(reinterpret_cast<byte*>(pOut), outsize);

When decompressing on the other end of the network connection, I did
the following:

size_t putSize =
m_ZlibDecompressor.Put(reinterpret_cast<byte*>(pBuffer->data()),
pBuffer->size());
// tell filter we want to process whatever we have received
bool bFlushRet = m_ZlibDecompressor.Flush(false);
size_t bytesRetrievable =
static_cast<size_t>(m_ZlibDecompressor.MaxRetrievable());
size_t getSize = m_ZlibDecompressor.Get(reinterpret_cast<byte*>(pIn,
bytesRetrievable);

However bytesRetrievable is always zero.

Thanks for any help!


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [EMAIL PROTECTED]
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---

Reply via email to