/***************************************************************************
- * Copyright (C) 2005-2018 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "internalpeer.h"
+#include "util.h"
+
using namespace Protocol;
-InternalPeer::InternalPeer(QObject *parent)
+InternalPeer::InternalPeer(QObject* parent)
: Peer(nullptr, parent)
{
static bool registered = []() {
setFeatures(Quassel::Features{});
}
-
InternalPeer::~InternalPeer()
{
if (_isOpen) {
}
}
-
QString InternalPeer::description() const
{
return tr("internal connection");
}
-
QString InternalPeer::address() const
{
return tr("internal connection");
}
-
quint16 InternalPeer::port() const
{
return 0;
}
-
bool InternalPeer::isOpen() const
{
return _isOpen;
}
-
bool InternalPeer::isSecure() const
{
return true;
}
-
bool InternalPeer::isLocal() const
{
return true;
}
-
-void InternalPeer::close(const QString &reason)
+void InternalPeer::close(const QString& reason)
{
Q_UNUSED(reason);
_isOpen = false;
}
-
int InternalPeer::lag() const
{
return 0;
}
-
-::SignalProxy *InternalPeer::signalProxy() const
+::SignalProxy* InternalPeer::signalProxy() const
{
return _proxy;
}
-
-void InternalPeer::setSignalProxy(::SignalProxy *proxy)
+void InternalPeer::setSignalProxy(::SignalProxy* proxy)
{
if (!proxy && _proxy) {
_proxy = nullptr;
qWarning() << Q_FUNC_INFO << "Changing the SignalProxy is not supported!";
}
-
-void InternalPeer::setPeer(InternalPeer *peer)
-{
- connect(peer, SIGNAL(dispatchMessage(Protocol::SyncMessage)), SLOT(handleMessage(Protocol::SyncMessage)));
- connect(peer, SIGNAL(dispatchMessage(Protocol::RpcCall)) , SLOT(handleMessage(Protocol::RpcCall)));
- connect(peer, SIGNAL(dispatchMessage(Protocol::InitRequest)), SLOT(handleMessage(Protocol::InitRequest)));
- connect(peer, SIGNAL(dispatchMessage(Protocol::InitData)) , SLOT(handleMessage(Protocol::InitData)));
+void InternalPeer::setPeer(InternalPeer* peer)
+{
+ connect(peer,
+ selectOverload<const Protocol::SyncMessage&>(&InternalPeer::dispatchMessage),
+ this,
+ selectOverload<const Protocol::SyncMessage&>(&InternalPeer::handleMessage));
+ connect(peer,
+ selectOverload<const Protocol::RpcCall&>(&InternalPeer::dispatchMessage),
+ this,
+ selectOverload<const Protocol::RpcCall&>(&InternalPeer::handleMessage));
+ connect(peer,
+ selectOverload<const Protocol::InitRequest&>(&InternalPeer::dispatchMessage),
+ this,
+ selectOverload<const Protocol::InitRequest&>(&InternalPeer::handleMessage));
+ connect(peer,
+ selectOverload<const Protocol::InitData&>(&InternalPeer::dispatchMessage),
+ this,
+ selectOverload<const Protocol::InitData&>(&InternalPeer::handleMessage));
connect(peer, &Peer::disconnected, this, &InternalPeer::peerDisconnected);
_isOpen = true;
}
-
void InternalPeer::peerDisconnected()
{
disconnect(sender(), nullptr, this, nullptr);
}
}
-
-void InternalPeer::dispatch(const SyncMessage &msg)
+void InternalPeer::dispatch(const SyncMessage& msg)
{
emit dispatchMessage(msg);
}
-
-void InternalPeer::dispatch(const RpcCall &msg)
+void InternalPeer::dispatch(const RpcCall& msg)
{
emit dispatchMessage(msg);
}
-
-void InternalPeer::dispatch(const InitRequest &msg)
+void InternalPeer::dispatch(const InitRequest& msg)
{
emit dispatchMessage(msg);
}
-
-void InternalPeer::dispatch(const InitData &msg)
+void InternalPeer::dispatch(const InitData& msg)
{
emit dispatchMessage(msg);
}
-
-void InternalPeer::handleMessage(const Protocol::SyncMessage &msg)
+void InternalPeer::handleMessage(const Protocol::SyncMessage& msg)
{
handle(msg);
}
-
-void InternalPeer::handleMessage(const Protocol::RpcCall &msg)
+void InternalPeer::handleMessage(const Protocol::RpcCall& msg)
{
handle(msg);
}
-
-void InternalPeer::handleMessage(const Protocol::InitRequest &msg)
+void InternalPeer::handleMessage(const Protocol::InitRequest& msg)
{
handle(msg);
}
-
-void InternalPeer::handleMessage(const Protocol::InitData &msg)
+void InternalPeer::handleMessage(const Protocol::InitData& msg)
{
handle(msg);
}
-
template<class T>
-void InternalPeer::handle(const T &msg)
+void InternalPeer::handle(const T& msg)
{
- static auto setSourcePeer = [](Peer *peer) {
+ static auto setSourcePeer = [](Peer* peer) {
auto p = SignalProxy::current();
if (p) {
p->setSourcePeer(peer);