X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Finternalpeer.h;h=838c83f00094edd4697394d608cc6ba6b8719c1a;hp=4c82ceb30d98f532d42d91611c81516be615f7b7;hb=cc6e7c08709c4e761e2fd9c2e322751015497003;hpb=9fc57dc2c000e80fb8bd746a090e2e8210e1278e diff --git a/src/common/internalpeer.h b/src/common/internalpeer.h index 4c82ceb3..838c83f0 100644 --- a/src/common/internalpeer.h +++ b/src/common/internalpeer.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 * @@ -18,76 +18,84 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef INTERNALPEER_H -#define INTERNALPEER_H +#pragma once -#include +#include "common-export.h" +#include +#include + +#include "peer.h" #include "protocol.h" #include "signalproxy.h" -class QEvent; - -class InternalPeer : public SignalProxy::AbstractPeer +class COMMON_EXPORT InternalPeer : public Peer { Q_OBJECT public: - enum EventType { - SyncMessageEvent = QEvent::User, - RpcCallEvent, - InitRequestEvent, - InitDataEvent - }; + InternalPeer(QObject* parent = nullptr); + ~InternalPeer() override; - InternalPeer(QObject *parent = 0); - virtual ~InternalPeer(); + Protocol::Type protocol() const override { return Protocol::InternalProtocol; } + QString description() const override; - QString description() const; + QString address() const override; + quint16 port() const override; - SignalProxy *signalProxy() const; - void setSignalProxy(SignalProxy *proxy); + SignalProxy* signalProxy() const override; + void setSignalProxy(SignalProxy* proxy) override; - InternalPeer *peer() const; - void setPeer(InternalPeer *peer); + InternalPeer* peer() const; + void setPeer(InternalPeer* peer); - bool isOpen() const; - bool isSecure() const; - bool isLocal() const; + bool isOpen() const override; + bool isSecure() const override; + bool isLocal() const override; - int lag() const; + int lag() const 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; + + /* These are not needed for InternalPeer */ + void dispatch(const Protocol::RegisterClient&) override {} + void dispatch(const Protocol::ClientDenied&) override {} + void dispatch(const Protocol::ClientRegistered&) override {} + void dispatch(const Protocol::SetupData&) override {} + void dispatch(const Protocol::SetupFailed&) override {} + void dispatch(const Protocol::SetupDone&) override {} + void dispatch(const Protocol::Login&) override {} + void dispatch(const Protocol::LoginFailed&) override {} + void dispatch(const Protocol::LoginSuccess&) override {} + void dispatch(const Protocol::SessionState&) override {} public slots: - void close(const QString &reason = QString()); + void close(const QString& reason = QString()) override; signals: - - void disconnected(); - void error(QAbstractSocket::SocketError); - -protected: - void customEvent(QEvent *event); + void dispatchMessage(const Protocol::SyncMessage& msg); + void dispatchMessage(const Protocol::RpcCall& msg); + void dispatchMessage(const Protocol::InitRequest& msg); + void dispatchMessage(const Protocol::InitData& msg); private slots: void peerDisconnected(); -private: - template - void dispatch(EventType eventType, const T &msg); + void handleMessage(const Protocol::SyncMessage& msg); + void handleMessage(const Protocol::RpcCall& msg); + void handleMessage(const Protocol::InitRequest& msg); + void handleMessage(const Protocol::InitData& msg); - template - void handle(const T &msg); +private: + template + void handle(const T& msg); private: - SignalProxy *_proxy; - InternalPeer *_peer; - bool _isOpen; + SignalProxy* _proxy{nullptr}; + bool _isOpen{true}; }; - -#endif +Q_DECLARE_METATYPE(QPointer)