X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fprotocols%2Flegacy%2Flegacypeer.h;h=ce668009db2fe4314b25d70529d6bb458ef4256f;hp=9234b332fed803e38ecf4b46fccb74d919adeb24;hb=cc6e7c08709c4e761e2fd9c2e322751015497003;hpb=64cf9f9b8a737dad5f29447805d4004cfd03c454 diff --git a/src/common/protocols/legacy/legacypeer.h b/src/common/protocols/legacy/legacypeer.h index 9234b332..ce668009 100644 --- a/src/common/protocols/legacy/legacypeer.h +++ b/src/common/protocols/legacy/legacypeer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2013 by the Quassel Project * + * Copyright (C) 2005-2019 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,18 +21,15 @@ #ifndef LEGACYPEER_H #define LEGACYPEER_H -#include - #include "../../remotepeer.h" -class QDataStream; - class LegacyPeer : public RemotePeer { Q_OBJECT public: - enum RequestType { + enum RequestType + { Sync = 1, RpcCall, InitRequest, @@ -41,50 +38,47 @@ public: HeartBeatReply }; - LegacyPeer(AuthHandler *authHandler, QTcpSocket *socket, QObject *parent = 0); - ~LegacyPeer() {} + LegacyPeer(AuthHandler* authHandler, QTcpSocket* socket, Compressor::CompressionLevel level, QObject* parent = nullptr); - void setSignalProxy(SignalProxy *proxy); + Protocol::Type protocol() const override { return Protocol::LegacyProtocol; } + QString protocolName() const override { return "the legacy protocol"; } - 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 setSignalProxy(SignalProxy* proxy) 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::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::HeartBeat &msg); - void dispatch(const Protocol::HeartBeatReply &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; - // FIXME: this is only used for the auth phase and should be replaced by something more generic - void writeSocketData(const QVariant &item); + void dispatch(const Protocol::HeartBeat& msg) override; + void dispatch(const Protocol::HeartBeatReply& msg) override; signals: - void protocolError(const QString &errorString); + void protocolError(const QString& errorString); - // only used in compat mode - void protocolVersionMismatch(int actual, int expected); +private: + using RemotePeer::writeMessage; + void writeMessage(const QVariant& item); + void processMessage(const QByteArray& msg) override; -private slots: - void socketDataAvailable(); + void handleHandshakeMessage(const QVariant& msg); + void handlePackedFunc(const QVariant& packedFunc); + void dispatchPackedFunc(const QVariantList& packedFunc); -private: - bool readSocketData(QVariant &item); - void handleHandshakeMessage(const QVariant &msg); - void handlePackedFunc(const QVariant &packedFunc); - void dispatchPackedFunc(const QVariantList &packedFunc); + void toLegacyIrcUsersAndChannels(QVariantMap& initData); + void fromLegacyIrcUsersAndChannels(QVariantMap& initData); - QDataStream _stream; - qint32 _blockSize; bool _useCompression; };