struct Private;
Base &below;
- unsigned buffer_size;
+ std::size_t buffer_size;
unsigned char *in_buffer;
unsigned char *out_buffer;
bool stream_end;
compression quality, ranging from 1 (fastest) to 9 (best compression). */
ZlibCompressed(Base &, unsigned level = 9);
+ /** Creates a zlib de/compression object. Mode must be either read or
+ write, and compatible with the underlying object. */
+ ZlibCompressed(Base &, Mode, unsigned level = 9);
+
+private:
+ void init(unsigned);
+
+public:
virtual ~ZlibCompressed();
+ virtual void set_block(bool);
+ virtual void set_inherit(bool);
+
void flush();
protected:
- virtual unsigned do_write(const char *, unsigned);
+ virtual std::size_t do_write(const char *, std::size_t);
private:
/** Compresses data and writes it to the underlying object. Returns true if
bool compress_data(int flush_mode);
public:
- virtual unsigned do_read(char *, unsigned);
+ virtual std::size_t do_read(char *, std::size_t);
+
+ virtual const Handle &get_handle(Mode);
};
} // namespace IO