/***************************************************************************
- * 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 *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef COMPRESSOR_H
-#define COMPRESSOR_H
+#pragma once
+
+#include <zlib.h>
#include <QObject>
Flush
};
- Compressor(QTcpSocket *socket, CompressionLevel level, QObject *parent = 0);
+ Compressor(QTcpSocket *socket, CompressionLevel level, QObject *parent = nullptr);
+ ~Compressor() override;
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;
-};
-#endif
+ QByteArray _inputBuffer;
+ QByteArray _outputBuffer;
+
+ z_streamp _inflater;
+ z_streamp _deflater;
+};