class zlib_error: public std::runtime_error
{
private:
- int code_;
+ int m_code;
public:
zlib_error(const std::string &, int);
- ~zlib_error() throw() { }
+ ~zlib_error() throw() override = default;
- int code() const throw() { return code_; }
+ int code() const throw() { return m_code; }
};
/**
struct Private;
Base &below;
- unsigned buffer_size;
- unsigned char *in_buffer;
- unsigned char *out_buffer;
- bool stream_end;
- Private *priv;
+ std::size_t buffer_size = 1024;
+ unsigned char *in_buffer = nullptr;
+ unsigned char *out_buffer = nullptr;
+ bool stream_end = false;
+ Private *priv = nullptr;
public:
/** Creates a zlib de/compression object. The underlying object must be
open for reading or writing, not both. The level parameter determines
compression quality, ranging from 1 (fastest) to 9 (best compression). */
- ZlibCompressed(Base &, unsigned level = 9);
+ ZlibCompressed(Base &b, unsigned level = 9): ZlibCompressed(b, b.get_mode()&M_RDWR, level) { }
/** 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();
+ ~ZlibCompressed() override;
- virtual void set_block(bool);
+ void set_block(bool) override;
+ void set_inherit(bool) override;
void flush();
protected:
- virtual unsigned do_write(const char *, unsigned);
+ std::size_t do_write(const char *, std::size_t) override;
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);
+ std::size_t do_read(char *, std::size_t) override;
- virtual const Handle &get_handle(Mode);
+ const Handle &get_handle(Mode) override;
};
} // namespace IO