Semi-yearly copyright bump
[quassel.git] / src / common / protocols / legacy / legacypeer.h
index 9234b33..803b2b3 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2013 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  *
 #ifndef LEGACYPEER_H
 #define LEGACYPEER_H
 
-#include <QDataStream>
-
 #include "../../remotepeer.h"
 
-class QDataStream;
-
 class LegacyPeer : public RemotePeer
 {
     Q_OBJECT
@@ -41,8 +37,10 @@ public:
         HeartBeatReply
     };
 
-    LegacyPeer(AuthHandler *authHandler, QTcpSocket *socket, QObject *parent = 0);
-    ~LegacyPeer() {}
+    LegacyPeer(AuthHandler *authHandler, QTcpSocket *socket, Compressor::CompressionLevel level, QObject *parent = 0);
+
+    Protocol::Type protocol() const { return Protocol::LegacyProtocol; }
+    QString protocolName() const { return "the legacy protocol"; }
 
     void setSignalProxy(SignalProxy *proxy);
 
@@ -65,26 +63,24 @@ public:
     void dispatch(const Protocol::HeartBeat &msg);
     void dispatch(const Protocol::HeartBeatReply &msg);
 
-    // FIXME: this is only used for the auth phase and should be replaced by something more generic
-    void writeSocketData(const QVariant &item);
-
 signals:
     void protocolError(const QString &errorString);
 
     // only used in compat mode
     void protocolVersionMismatch(int actual, int expected);
 
-private slots:
-    void socketDataAvailable();
-
 private:
-    bool readSocketData(QVariant &item);
+    using RemotePeer::writeMessage;
+    void writeMessage(const QVariant &item);
+    void processMessage(const QByteArray &msg);
+
     void handleHandshakeMessage(const QVariant &msg);
     void handlePackedFunc(const QVariant &packedFunc);
     void dispatchPackedFunc(const QVariantList &packedFunc);
 
-    QDataStream _stream;
-    qint32 _blockSize;
+    void toLegacyIrcUsersAndChannels(QVariantMap &initData);
+    void fromLegacyIrcUsersAndChannels(QVariantMap &initData);
+
     bool _useCompression;
 };