/***************************************************************************
- * Copyright (C) 2005-2014 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
class QTcpSocket;
+#ifdef HAVE_ZLIB
+ typedef struct z_stream_s *z_streamp;
+#else
+ typedef struct mz_stream_s *z_streamp;
+#endif
+
class Compressor : public QObject
{
Q_OBJECT
};
Compressor(QTcpSocket *socket, CompressionLevel level, QObject *parent = 0);
+ ~Compressor();
CompressionLevel compressionLevel() const { return _level; }
signals:
void readyRead();
- void error(Compressor::Error errorCode);
+ void error(Compressor::Error errorCode = StreamError);
private slots:
void readData();
private:
+ bool initStreams();
void writeData();
private:
QByteArray _readBuffer;
QByteArray _writeBuffer;
+
+ QByteArray _inputBuffer;
+ QByteArray _outputBuffer;
+
+ z_streamp _inflater;
+ z_streamp _deflater;
};
#endif