X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Finternalpeer.h;h=62e070d923ead71014510b5647e44bbdf85788c1;hp=7585954370986a7e4d0446b4ee1b73db0eae45ba;hb=92fc8c5b119111a35ab8423c3cbde5b2a022badf;hpb=64cf9f9b8a737dad5f29447805d4004cfd03c454 diff --git a/src/common/internalpeer.h b/src/common/internalpeer.h index 75859543..62e070d9 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-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,79 +18,84 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef INTERNALPEER_H -#define INTERNALPEER_H +#pragma once + +#include "common-export.h" + +#include +#include #include "peer.h" #include "protocol.h" #include "signalproxy.h" -class QEvent; - -class InternalPeer : public Peer +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); - 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)