X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Finternalpeer.h;h=a94802d2b372106ab7daa3bb487b598acf611e21;hb=ab7ef4d24f62b5848b628482b7762ebfc0b53e1a;hp=55cfeae664e5d604eb094b884b2d9c1241906c61;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;p=quassel.git diff --git a/src/common/internalpeer.h b/src/common/internalpeer.h index 55cfeae6..a94802d2 100644 --- a/src/common/internalpeer.h +++ b/src/common/internalpeer.h @@ -18,83 +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 = 0); - virtual ~InternalPeer(); + InternalPeer(QObject *parent = nullptr); + ~InternalPeer() override; - Protocol::Type protocol() const { return Protocol::InternalProtocol; } - QString description() const; + Protocol::Type protocol() const override { return Protocol::InternalProtocol; } + QString description() const override; - virtual QString address() const; - virtual quint16 port() 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)