X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Finternalpeer.h;h=838c83f00094edd4697394d608cc6ba6b8719c1a;hp=e7f1ca133ca59dcf325c7a478bb0a3a1cf23fae6;hb=cc6e7c08709c4e761e2fd9c2e322751015497003;hpb=9ef86f499753853c3751aee7da54d186837a5161 diff --git a/src/common/internalpeer.h b/src/common/internalpeer.h index e7f1ca13..838c83f0 100644 --- a/src/common/internalpeer.h +++ b/src/common/internalpeer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 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,83 +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; - Protocol::Type protocol() const { return Protocol::InternalProtocol; } - QString description() const; + QString address() const override; + quint16 port() const override; - virtual QString address() const; - virtual quint16 port() const; + SignalProxy* signalProxy() const override; + void setSignalProxy(SignalProxy* proxy) override; - SignalProxy *signalProxy() const; - void setSignalProxy(SignalProxy *proxy); + InternalPeer* peer() const; + void setPeer(InternalPeer* peer); - InternalPeer *peer() const; - void setPeer(InternalPeer *peer); + bool isOpen() const override; + bool isSecure() const override; + bool isLocal() const override; - bool isOpen() const; - bool isSecure() const; - bool isLocal() const; + int lag() const override; - int lag() const; - - 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)