X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Finternalpeer.h;h=1469922b7f7916a5f83feeca2f80b3f34b551f1f;hp=97499bd7d249d193ac2dae23d11a70f5d6bc0eba;hb=a65f42197839da536975b3e2858eedcef420035f;hpb=1cb02004ee5973b89368bd84f234d4652794690d diff --git a/src/common/internalpeer.h b/src/common/internalpeer.h index 97499bd7..1469922b 100644 --- a/src/common/internalpeer.h +++ b/src/common/internalpeer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 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,79 +18,82 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef INTERNALPEER_H -#define INTERNALPEER_H +#pragma once + +#include +#include #include "peer.h" #include "protocol.h" #include "signalproxy.h" -class QEvent; - class 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); - 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 &) {} - void dispatch(const Protocol::ClientDenied &) {} - void dispatch(const Protocol::ClientRegistered &) {} - void dispatch(const Protocol::SetupData &) {} - void dispatch(const Protocol::SetupFailed &) {} - void dispatch(const Protocol::SetupDone &) {} - void dispatch(const Protocol::Login &) {} - void dispatch(const Protocol::LoginFailed &) {} - void dispatch(const Protocol::LoginSuccess &) {} - void dispatch(const Protocol::SessionState &) {} + 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; -protected: - void customEvent(QEvent *event); +signals: + 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(); + void handleMessage(const Protocol::SyncMessage &msg); + void handleMessage(const Protocol::RpcCall &msg); + void handleMessage(const Protocol::InitRequest &msg); + void handleMessage(const Protocol::InitData &msg); + private: - template - void dispatch(EventType eventType, const T &msg); + template + void handle(const T &msg); private: - SignalProxy *_proxy; - InternalPeer *_peer; - bool _isOpen; + SignalProxy *_proxy{nullptr}; + bool _isOpen{true}; }; - -#endif +Q_DECLARE_METATYPE(QPointer)