modernize: Replace most remaining old-style connects by PMF ones
[quassel.git] / src / common / protocols / legacy / legacypeer.h
index 3bc93d3..47cadcc 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   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  *
 #ifndef LEGACYPEER_H
 #define LEGACYPEER_H
 
-#include <QDataStream>
-
 #include "../../remotepeer.h"
 
-class QDataStream;
-
 class LegacyPeer : public RemotePeer
 {
     Q_OBJECT
@@ -41,49 +37,47 @@ public:
         HeartBeatReply
     };
 
-    LegacyPeer(AuthHandler *authHandler, QTcpSocket *socket, QObject *parent = 0);
+    LegacyPeer(AuthHandler *authHandler, QTcpSocket *socket, Compressor::CompressionLevel level, QObject *parent = nullptr);
 
-    Protocol::Type protocol() const { return Protocol::LegacyProtocol; }
+    Protocol::Type protocol() const override { return Protocol::LegacyProtocol; }
+    QString protocolName() const override { return "the legacy protocol"; }
 
-    void setSignalProxy(SignalProxy *proxy);
+    void setSignalProxy(SignalProxy *proxy) override;
 
-    void dispatch(const Protocol::RegisterClient &msg);
-    void dispatch(const Protocol::ClientDenied &msg);
-    void dispatch(const Protocol::ClientRegistered &msg);
-    void dispatch(const Protocol::SetupData &msg);
-    void dispatch(const Protocol::SetupFailed &msg);
-    void dispatch(const Protocol::SetupDone &msg);
-    void dispatch(const Protocol::Login &msg);
-    void dispatch(const Protocol::LoginFailed &msg);
-    void dispatch(const Protocol::LoginSuccess &msg);
-    void dispatch(const Protocol::SessionState &msg);
+    void dispatch(const Protocol::RegisterClient &msg) override;
+    void dispatch(const Protocol::ClientDenied &msg) override;
+    void dispatch(const Protocol::ClientRegistered &msg) override;
+    void dispatch(const Protocol::SetupData &msg) override;
+    void dispatch(const Protocol::SetupFailed &msg) override;
+    void dispatch(const Protocol::SetupDone &msg) override;
+    void dispatch(const Protocol::Login &msg) override;
+    void dispatch(const Protocol::LoginFailed &msg) override;
+    void dispatch(const Protocol::LoginSuccess &msg) override;
+    void dispatch(const Protocol::SessionState &msg) override;
 
-    void dispatch(const Protocol::SyncMessage &msg);
-    void dispatch(const Protocol::RpcCall &msg);
-    void dispatch(const Protocol::InitRequest &msg);
-    void dispatch(const Protocol::InitData &msg);
+    void dispatch(const Protocol::SyncMessage &msg) override;
+    void dispatch(const Protocol::RpcCall &msg) override;
+    void dispatch(const Protocol::InitRequest &msg) override;
+    void dispatch(const Protocol::InitData &msg) override;
 
-    void dispatch(const Protocol::HeartBeat &msg);
-    void dispatch(const Protocol::HeartBeatReply &msg);
+    void dispatch(const Protocol::HeartBeat &msg) override;
+    void dispatch(const Protocol::HeartBeatReply &msg) override;
 
 signals:
     void protocolError(const QString &errorString);
 
-    // only used in compat mode
-    void protocolVersionMismatch(int actual, int expected);
-
-protected slots:
-    void onSocketDataAvailable();
-
 private:
-    bool readSocketData(QVariant &item);
-    void writeSocketData(const QVariant &item);
+    using RemotePeer::writeMessage;
+    void writeMessage(const QVariant &item);
+    void processMessage(const QByteArray &msg) override;
+
     void handleHandshakeMessage(const QVariant &msg);
     void handlePackedFunc(const QVariant &packedFunc);
     void dispatchPackedFunc(const QVariantList &packedFunc);
 
-    QDataStream _stream;
-    quint32 _blockSize;
+    void toLegacyIrcUsersAndChannels(QVariantMap &initData);
+    void fromLegacyIrcUsersAndChannels(QVariantMap &initData);
+
     bool _useCompression;
 };