aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/lib/io/zlib_inputstream.h
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/core/lib/io/zlib_inputstream.h')
-rw-r--r--tensorflow/core/lib/io/zlib_inputstream.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/tensorflow/core/lib/io/zlib_inputstream.h b/tensorflow/core/lib/io/zlib_inputstream.h
index 9c7e14441c..37339163ee 100644
--- a/tensorflow/core/lib/io/zlib_inputstream.h
+++ b/tensorflow/core/lib/io/zlib_inputstream.h
@@ -40,7 +40,15 @@ class ZlibInputStream : public InputStreamInterface {
// Create a ZlibInputStream for `input_stream` with a buffer of size
// `input_buffer_bytes` bytes for reading contents from `input_stream` and
// another buffer with size `output_buffer_bytes` for caching decompressed
- // contents. Does *not* take ownership of "input_stream".
+ // contents.
+ //
+ // Takes ownership of `input_stream` iff `owns_input_stream` is true.
+ ZlibInputStream(InputStreamInterface* input_stream, size_t input_buffer_bytes,
+ size_t output_buffer_bytes,
+ const ZlibCompressionOptions& zlib_options,
+ bool owns_input_stream);
+
+ // Equivalent to the previous constructor with owns_input_stream=false.
ZlibInputStream(InputStreamInterface* input_stream, size_t input_buffer_bytes,
size_t output_buffer_bytes,
const ZlibCompressionOptions& zlib_options);
@@ -65,10 +73,11 @@ class ZlibInputStream : public InputStreamInterface {
private:
void InitZlibBuffer();
- InputStreamInterface* input_stream_; // Not owned
- size_t input_buffer_capacity_; // Size of z_stream_input_
- size_t output_buffer_capacity_; // Size of z_stream_output_
- char* next_unread_byte_; // Next unread byte in z_stream_output_
+ const bool owns_input_stream_;
+ InputStreamInterface* input_stream_;
+ size_t input_buffer_capacity_; // Size of z_stream_input_
+ size_t output_buffer_capacity_; // Size of z_stream_output_
+ char* next_unread_byte_; // Next unread byte in z_stream_output_
// Buffer for storing contents read from compressed stream.
// TODO(srbs): Consider using circular buffers. That would greatly simplify