THRIFT-1564 Minor fixes to TZlibTransport
authorRoger Meier <roger@apache.org>
Fri, 13 Apr 2012 10:30:11 +0000 (10:30 +0000)
committerRoger Meier <roger@apache.org>
Fri, 13 Apr 2012 10:30:11 +0000 (10:30 +0000)
Patch: Dave Watson

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1325712 13f79535-47bb-0310-9956-ffa450edef68

lib/cpp/src/thrift/transport/TZlibTransport.cpp
lib/cpp/src/thrift/transport/TZlibTransport.h

index fc407cb..98b25b8 100644 (file)
@@ -110,9 +110,15 @@ TZlibTransport::~TZlibTransport() {
 }
 
 bool TZlibTransport::isOpen() {
-  return (readAvail() > 0) || transport_->isOpen();
+  return (readAvail() > 0) || (rstream_->avail_in > 0) || transport_->isOpen();
 }
 
+bool TZlibTransport::peek() {
+  return (readAvail() > 0) || (rstream_->avail_in > 0) || transport_->peek();
+}
+
+
+
 // READING STRATEGY
 //
 // We have two buffers for reading: one containing the compressed data (crbuf_)
@@ -253,7 +259,7 @@ void TZlibTransport::flush()  {
                               "flush() called after finish()");
   }
 
-  flushToTransport(Z_SYNC_FLUSH);
+  flushToTransport(Z_FULL_FLUSH);
 }
 
 void TZlibTransport::finish()  {
index b365641..607969c 100644 (file)
@@ -144,6 +144,7 @@ class TZlibTransport : public TVirtualTransport<TZlibTransport> {
   ~TZlibTransport();
 
   bool isOpen();
+  bool peek();
 
   void open() {
     transport_->open();