#include <stdexcept>
#include <string>
+#include <sigc++/trackable.h>
#include "base.h"
namespace Msp {
To ensure proper termination of the compressed data stream, the ZlibCompressed
object must be destroyed before the underlying object is closed.
*/
-class ZlibCompressed: public Base
+class ZlibCompressed: public Base, public sigc::trackable
{
private:
struct Private;
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();
void flush();