Mutate SignalProxy::AbstractPeer into a separate class Peer
authorManuel Nickschas <sputnick@quassel-irc.org>
Wed, 20 Feb 2013 22:52:15 +0000 (23:52 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 20 Feb 2013 22:52:15 +0000 (23:52 +0100)
It makes no sense anymore to have this a nested class inside SignalProxy
anymore.
Also, this streamlines the template handling a bit; we don't need to duplicate
the handle() message between RemotePeer and InternalPeer.

14 files changed:
src/client/coreconnection.h
src/common/CMakeLists.txt
src/common/internalpeer.cpp
src/common/internalpeer.h
src/common/peer.cpp [new file with mode: 0644]
src/common/peer.h [new file with mode: 0644]
src/common/protocol.h
src/common/protocols/legacy/legacypeer.cpp
src/common/remotepeer.cpp
src/common/remotepeer.h
src/common/signalproxy.cpp
src/common/signalproxy.h
src/core/coresession.cpp
src/core/coresession.h

index 836d8cc..9ba9d6a 100644 (file)
@@ -43,6 +43,7 @@
 class CoreAccountModel;
 class InternalPeer;
 class Network;
 class CoreAccountModel;
 class InternalPeer;
 class Network;
+class Peer;
 class SignalProxy;
 
 class CoreConnection : public QObject
 class SignalProxy;
 
 class CoreConnection : public QObject
@@ -176,7 +177,7 @@ private:
     QVariantMap _coreMsgBuffer;
 
     QPointer<QTcpSocket> _socket;
     QVariantMap _coreMsgBuffer;
 
     QPointer<QTcpSocket> _socket;
-    QPointer<SignalProxy::AbstractPeer> _peer;
+    QPointer<Peer> _peer;
     ConnectionState _state;
 
     QTimer _reconnectTimer;
     ConnectionState _state;
 
     QTimer _reconnectTimer;
index c247eb3..18e6fcf 100644 (file)
@@ -28,6 +28,7 @@ set(SOURCES
     network.cpp
     networkconfig.cpp
     networkevent.cpp
     network.cpp
     networkconfig.cpp
     networkevent.cpp
+    peer.cpp
     quassel.cpp
     remotepeer.cpp
     settings.cpp
     quassel.cpp
     remotepeer.cpp
     settings.cpp
@@ -55,6 +56,7 @@ set(MOC_HDRS
     ircuser.h
     network.h
     networkconfig.h
     ircuser.h
     network.h
     networkconfig.h
+    peer.h
     remotepeer.h
     settings.h
     signalproxy.h
     remotepeer.h
     settings.h
     signalproxy.h
index 15e67ed..20ab2e9 100644 (file)
@@ -37,7 +37,7 @@ public:
 
 
 InternalPeer::InternalPeer(QObject *parent)
 
 
 InternalPeer::InternalPeer(QObject *parent)
-    : SignalProxy::AbstractPeer(parent),
+    : Peer(parent),
     _proxy(0),
     _peer(0),
     _isOpen(true)
     _proxy(0),
     _peer(0),
     _isOpen(true)
@@ -91,6 +91,12 @@ int InternalPeer::lag() const
 }
 
 
 }
 
 
+::SignalProxy *InternalPeer::signalProxy() const
+{
+    return _proxy;
+}
+
+
 void InternalPeer::setSignalProxy(::SignalProxy *proxy)
 {
     if (!proxy && _proxy) {
 void InternalPeer::setSignalProxy(::SignalProxy *proxy)
 {
     if (!proxy && _proxy) {
@@ -172,18 +178,6 @@ void InternalPeer::dispatch(EventType eventType, const T &msg)
 }
 
 
 }
 
 
-template<class T>
-void InternalPeer::handle(const T &msg)
-{
-    if (!_proxy) {
-        qWarning() << Q_FUNC_INFO << "Cannot handle a message without having a signal proxy set!";
-        return;
-    }
-
-    _proxy->handle(this, msg);
-}
-
-
 void InternalPeer::customEvent(QEvent *event)
 {
     switch ((int)event->type()) {
 void InternalPeer::customEvent(QEvent *event)
 {
     switch ((int)event->type()) {
index 4c82ceb..ada5f09 100644 (file)
 #ifndef INTERNALPEER_H
 #define INTERNALPEER_H
 
 #ifndef INTERNALPEER_H
 #define INTERNALPEER_H
 
-#include <QTcpSocket>
-
+#include "peer.h"
 #include "protocol.h"
 #include "signalproxy.h"
 
 class QEvent;
 
 #include "protocol.h"
 #include "signalproxy.h"
 
 class QEvent;
 
-class InternalPeer : public SignalProxy::AbstractPeer
+class InternalPeer : public Peer
 {
     Q_OBJECT
 
 {
     Q_OBJECT
 
@@ -65,11 +64,6 @@ public:
 public slots:
     void close(const QString &reason = QString());
 
 public slots:
     void close(const QString &reason = QString());
 
-signals:
-
-    void disconnected();
-    void error(QAbstractSocket::SocketError);
-
 protected:
     void customEvent(QEvent *event);
 
 protected:
     void customEvent(QEvent *event);
 
@@ -80,9 +74,6 @@ private:
     template<class T>
     void dispatch(EventType eventType, const T &msg);
 
     template<class T>
     void dispatch(EventType eventType, const T &msg);
 
-    template<class T>
-    void handle(const T &msg);
-
 private:
     SignalProxy *_proxy;
     InternalPeer *_peer;
 private:
     SignalProxy *_proxy;
     InternalPeer *_peer;
diff --git a/src/common/peer.cpp b/src/common/peer.cpp
new file mode 100644 (file)
index 0000000..62b5f79
--- /dev/null
@@ -0,0 +1,19 @@
+/***************************************************************************
+ *   Copyright (C) 2005-2013 by the Quassel Project                        *
+ *   devel@quassel-irc.org                                                 *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) version 3.                                           *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
+ ***************************************************************************/
diff --git a/src/common/peer.h b/src/common/peer.h
new file mode 100644 (file)
index 0000000..41c82cf
--- /dev/null
@@ -0,0 +1,86 @@
+/***************************************************************************
+ *   Copyright (C) 2005-2013 by the Quassel Project                        *
+ *   devel@quassel-irc.org                                                 *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) version 3.                                           *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
+ ***************************************************************************/
+
+#ifndef PEER_H
+#define PEER_H
+
+#include <QObject>
+
+#include "protocol.h"
+#include "signalproxy.h"
+
+class Peer : public QObject
+{
+    Q_OBJECT
+
+public:
+    Peer(QObject *parent = 0) : QObject(parent) {}
+
+    virtual QString description() const = 0;
+
+    virtual SignalProxy *signalProxy() const = 0;
+    virtual void setSignalProxy(SignalProxy *proxy) = 0;
+
+    virtual bool isOpen() const = 0;
+    virtual bool isSecure() const = 0;
+    virtual bool isLocal() const = 0;
+
+    virtual int lag() const = 0;
+
+public slots:
+    virtual void dispatch(const Protocol::SyncMessage &msg) = 0;
+    virtual void dispatch(const Protocol::RpcCall &msg) = 0;
+    virtual void dispatch(const Protocol::InitRequest &msg) = 0;
+    virtual void dispatch(const Protocol::InitData &msg) = 0;
+
+    virtual void close(const QString &reason = QString()) = 0;
+
+signals:
+    void disconnected();
+    void error(QAbstractSocket::SocketError);
+    void secureStateChanged(bool secure = true);
+    void lagUpdated(int msecs);
+
+protected:
+    template<class T>
+    void handle(const T &protoMessage);
+};
+
+
+// Template method needed in the header
+template<class T> inline
+void Peer::handle(const T &protoMessage)
+{
+    switch(protoMessage.handler()) {
+        case Protocol::SignalProxy:
+            if (!signalProxy()) {
+                qWarning() << Q_FUNC_INFO << "Cannot handle message without a SignalProxy!";
+                return;
+            }
+            signalProxy()->handle(this, protoMessage);
+            break;
+
+        default:
+            qWarning() << Q_FUNC_INFO << "Unknown handler for protocol message!";
+            return;
+    }
+}
+
+#endif
index af98b8b..121f4e4 100644 (file)
 
 namespace Protocol {
 
 
 namespace Protocol {
 
+enum Handler {
+    SignalProxy
+};
+
+
 /*** handled by SignalProxy ***/
 
 class SyncMessage
 /*** handled by SignalProxy ***/
 
 class SyncMessage
@@ -35,6 +40,8 @@ public:
     inline SyncMessage(const QByteArray &className, const QString &objectName, const QByteArray &slotName, const QVariantList &params)
     : _className(className), _objectName(objectName), _slotName(slotName), _params(params) {}
 
     inline SyncMessage(const QByteArray &className, const QString &objectName, const QByteArray &slotName, const QVariantList &params)
     : _className(className), _objectName(objectName), _slotName(slotName), _params(params) {}
 
+    inline Handler handler() const { return SignalProxy; }
+
     inline QByteArray className() const { return _className; }
     inline QString objectName() const { return _objectName; }
     inline QByteArray slotName() const { return _slotName; }
     inline QByteArray className() const { return _className; }
     inline QString objectName() const { return _objectName; }
     inline QByteArray slotName() const { return _slotName; }
@@ -55,6 +62,8 @@ public:
     inline RpcCall(const QByteArray &slotName, const QVariantList &params)
     : _slotName(slotName), _params(params) {}
 
     inline RpcCall(const QByteArray &slotName, const QVariantList &params)
     : _slotName(slotName), _params(params) {}
 
+    inline Handler handler() const { return SignalProxy; }
+
     inline QByteArray slotName() const { return _slotName; }
     inline QVariantList params() const { return _params; }
 
     inline QByteArray slotName() const { return _slotName; }
     inline QVariantList params() const { return _params; }
 
@@ -70,6 +79,8 @@ public:
     inline InitRequest(const QByteArray &className, const QString &objectName)
     : _className(className), _objectName(objectName) {}
 
     inline InitRequest(const QByteArray &className, const QString &objectName)
     : _className(className), _objectName(objectName) {}
 
+    inline Handler handler() const { return SignalProxy; }
+
     inline QByteArray className() const { return _className; }
     inline QString objectName() const { return _objectName; }
 
     inline QByteArray className() const { return _className; }
     inline QString objectName() const { return _objectName; }
 
@@ -85,6 +96,8 @@ public:
     inline InitData(const QByteArray &className, const QString &objectName, const QVariantMap &initData)
     : _className(className), _objectName(objectName), _initData(initData) {}
 
     inline InitData(const QByteArray &className, const QString &objectName, const QVariantMap &initData)
     : _className(className), _objectName(objectName), _initData(initData) {}
 
+    inline Handler handler() const { return SignalProxy; }
+
     inline QByteArray className() const { return _className; }
     inline QString objectName() const { return _objectName; }
 
     inline QByteArray className() const { return _className; }
     inline QString objectName() const { return _objectName; }
 
index 709291f..d000047 100644 (file)
@@ -18,6 +18,8 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
+#include <QTcpSocket>
+
 #include "legacypeer.h"
 
 using namespace Protocol;
 #include "legacypeer.h"
 
 using namespace Protocol;
index e33f56a..f8deabf 100644 (file)
@@ -30,7 +30,7 @@
 using namespace Protocol;
 
 RemotePeer::RemotePeer(QTcpSocket *socket, QObject *parent)
 using namespace Protocol;
 
 RemotePeer::RemotePeer(QTcpSocket *socket, QObject *parent)
-    : SignalProxy::AbstractPeer(parent),
+    : Peer(parent),
     _socket(socket),
     _signalProxy(0),
     _heartBeatTimer(new QTimer(this)),
     _socket(socket),
     _signalProxy(0),
     _heartBeatTimer(new QTimer(this)),
index e41a6a3..5751dfb 100644 (file)
 #define REMOTEPEER_H
 
 #include <QDateTime>
 #define REMOTEPEER_H
 
 #include <QDateTime>
-#include <QTcpSocket>
 
 
+#include "peer.h"
 #include "protocol.h"
 #include "signalproxy.h"
 
 #include "protocol.h"
 #include "signalproxy.h"
 
+class QTcpSocket;
 class QTimer;
 
 class QTimer;
 
-class RemotePeer : public SignalProxy::AbstractPeer
+class RemotePeer : public Peer
 {
     Q_OBJECT
 
 {
     Q_OBJECT
 
@@ -62,9 +63,6 @@ signals:
     // this is only used for the auth phase and should be replaced by something more generic
     void dataReceived(const QVariant &item);
 
     // this is only used for the auth phase and should be replaced by something more generic
     void dataReceived(const QVariant &item);
 
-    void disconnected();
-    void error(QAbstractSocket::SocketError);
-
     void transferProgress(int current, int max);
 
 protected:
     void transferProgress(int current, int max);
 
 protected:
@@ -91,18 +89,11 @@ private:
     int _lag;
 };
 
     int _lag;
 };
 
-// Template methods we need in the header
+
 template<class T> inline
 void RemotePeer::handle(const T &protoMessage)
 {
 template<class T> inline
 void RemotePeer::handle(const T &protoMessage)
 {
-    if (!signalProxy()) {
-        qWarning() << Q_FUNC_INFO << "Cannot handle messages without a SignalProxy!";
-        return;
-    }
-
-    // _heartBeatCount = 0;
-
-    signalProxy()->handle(this, protoMessage);
+    Peer::handle(protoMessage);
 }
 
 
 }
 
 
index f05a509..62fc818 100644 (file)
@@ -40,6 +40,7 @@
 #include <QEvent>
 #include <QCoreApplication>
 
 #include <QEvent>
 #include <QCoreApplication>
 
+#include "peer.h"
 #include "protocol.h"
 #include "syncableobject.h"
 #include "util.h"
 #include "protocol.h"
 #include "syncableobject.h"
 #include "util.h"
@@ -49,8 +50,8 @@ using namespace Protocol;
 class RemovePeerEvent : public QEvent
 {
 public:
 class RemovePeerEvent : public QEvent
 {
 public:
-    RemovePeerEvent(SignalProxy::AbstractPeer *peer) : QEvent(QEvent::Type(SignalProxy::RemovePeerEvent)), peer(peer) {}
-    SignalProxy::AbstractPeer *peer;
+    RemovePeerEvent(Peer *peer) : QEvent(QEvent::Type(SignalProxy::RemovePeerEvent)), peer(peer) {}
+    Peer *peer;
 };
 
 
 };
 
 
@@ -257,7 +258,7 @@ void SignalProxy::setMaxHeartBeatCount(int max)
 }
 
 
 }
 
 
-bool SignalProxy::addPeer(AbstractPeer *peer)
+bool SignalProxy::addPeer(Peer *peer)
 {
     if (!peer)
         return false;
 {
     if (!peer)
         return false;
@@ -300,14 +301,14 @@ void SignalProxy::removeAllPeers()
 {
     Q_ASSERT(proxyMode() == Server || _peers.count() <= 1);
     // wee need to copy that list since we modify it in the loop
 {
     Q_ASSERT(proxyMode() == Server || _peers.count() <= 1);
     // wee need to copy that list since we modify it in the loop
-    QSet<AbstractPeer *> peers = _peers;
-    foreach(AbstractPeer *peer, peers) {
+    QSet<Peer *> peers = _peers;
+    foreach(Peer *peer, peers) {
         removePeer(peer);
     }
 }
 
 
         removePeer(peer);
     }
 }
 
 
-void SignalProxy::removePeer(AbstractPeer *peer)
+void SignalProxy::removePeer(Peer *peer)
 {
     if (!peer) {
         qWarning() << Q_FUNC_INFO << "Trying to remove a null peer!";
 {
     if (!peer) {
         qWarning() << Q_FUNC_INFO << "Trying to remove a null peer!";
@@ -342,7 +343,7 @@ void SignalProxy::removePeer(AbstractPeer *peer)
 
 void SignalProxy::removePeerBySender()
 {
 
 void SignalProxy::removePeerBySender()
 {
-    removePeer(qobject_cast<SignalProxy::AbstractPeer *>(sender()));
+    removePeer(qobject_cast<Peer *>(sender()));
 }
 
 
 }
 
 
@@ -502,7 +503,7 @@ void SignalProxy::stopSynchronize(SyncableObject *obj)
 template<class T>
 void SignalProxy::dispatch(const T &protoMessage)
 {
 template<class T>
 void SignalProxy::dispatch(const T &protoMessage)
 {
-    foreach (AbstractPeer *peer, _peers) {
+    foreach (Peer *peer, _peers) {
         if (peer->isOpen())
             peer->dispatch(protoMessage);
         else
         if (peer->isOpen())
             peer->dispatch(protoMessage);
         else
@@ -511,7 +512,7 @@ void SignalProxy::dispatch(const T &protoMessage)
 }
 
 
 }
 
 
-void SignalProxy::handle(SignalProxy::AbstractPeer *peer, const SyncMessage &syncMessage)
+void SignalProxy::handle(Peer *peer, const SyncMessage &syncMessage)
 {
     if (!_syncSlave.contains(syncMessage.className()) || !_syncSlave[syncMessage.className()].contains(syncMessage.objectName())) {
         qWarning() << QString("no registered receiver for sync call: %1::%2 (objectName=\"%3\"). Params are:").arg(syncMessage.className(), syncMessage.slotName(), syncMessage.objectName())
 {
     if (!_syncSlave.contains(syncMessage.className()) || !_syncSlave[syncMessage.className()].contains(syncMessage.objectName())) {
         qWarning() << QString("no registered receiver for sync call: %1::%2 (objectName=\"%3\"). Params are:").arg(syncMessage.className(), syncMessage.slotName(), syncMessage.objectName())
@@ -553,7 +554,7 @@ void SignalProxy::handle(SignalProxy::AbstractPeer *peer, const SyncMessage &syn
 }
 
 
 }
 
 
-void SignalProxy::handle(SignalProxy::AbstractPeer *peer, const InitRequest &initRequest)
+void SignalProxy::handle(Peer *peer, const InitRequest &initRequest)
 {
    if (!_syncSlave.contains(initRequest.className())) {
         qWarning() << "SignalProxy::handleInitRequest() received initRequest for unregistered Class:"
 {
    if (!_syncSlave.contains(initRequest.className())) {
         qWarning() << "SignalProxy::handleInitRequest() received initRequest for unregistered Class:"
@@ -572,7 +573,7 @@ void SignalProxy::handle(SignalProxy::AbstractPeer *peer, const InitRequest &ini
 }
 
 
 }
 
 
-void SignalProxy::handle(SignalProxy::AbstractPeer *peer, const InitData &initData)
+void SignalProxy::handle(Peer *peer, const InitData &initData)
 {
     Q_UNUSED(peer)
 
 {
     Q_UNUSED(peer)
 
@@ -593,7 +594,7 @@ void SignalProxy::handle(SignalProxy::AbstractPeer *peer, const InitData &initDa
 }
 
 
 }
 
 
-void SignalProxy::handle(SignalProxy::AbstractPeer *peer, const RpcCall &rpcCall)
+void SignalProxy::handle(Peer *peer, const RpcCall &rpcCall)
 {
     Q_UNUSED(peer)
 
 {
     Q_UNUSED(peer)
 
@@ -772,7 +773,7 @@ void SignalProxy::updateSecureState()
     bool wasSecure = _secure;
 
     _secure = !_peers.isEmpty();
     bool wasSecure = _secure;
 
     _secure = !_peers.isEmpty();
-    foreach (const AbstractPeer *peer,  _peers) {
+    foreach (const Peer *peer,  _peers) {
         _secure &= peer->isSecure();
     }
 
         _secure &= peer->isSecure();
     }
 
index a966700..a1f9e71 100644 (file)
 
 #include "protocol.h"
 
 
 #include "protocol.h"
 
-class SyncableObject;
-struct QMetaObject;
+class QMetaObject;
 
 
+class Peer;
+class SyncableObject;
 
 class SignalProxy : public QObject
 {
 
 class SignalProxy : public QObject
 {
@@ -46,8 +47,6 @@ class SignalProxy : public QObject
     class SignalRelay;
 
 public:
     class SignalRelay;
 
 public:
-    class AbstractPeer;
-
     enum ProxyMode {
         Server,
         Client
     enum ProxyMode {
         Server,
         Client
@@ -69,7 +68,7 @@ public:
     void setMaxHeartBeatCount(int max);
     inline int maxHeartBeatCount() const { return _maxHeartBeatCount; }
 
     void setMaxHeartBeatCount(int max);
     inline int maxHeartBeatCount() const { return _maxHeartBeatCount; }
 
-    bool addPeer(AbstractPeer *peer);
+    bool addPeer(Peer *peer);
 
     bool attachSignal(QObject *sender, const char *signal, const QByteArray &sigName = QByteArray());
     bool attachSlot(const QByteArray &sigName, QObject *recv, const char *slot);
 
     bool attachSignal(QObject *sender, const char *signal, const QByteArray &sigName = QByteArray());
     bool attachSlot(const QByteArray &sigName, QObject *recv, const char *slot);
@@ -104,7 +103,7 @@ private slots:
     void updateSecureState();
 
 signals:
     void updateSecureState();
 
 signals:
-    void peerRemoved(SignalProxy::AbstractPeer *peer);
+    void peerRemoved(Peer *peer);
     void connected();
     void disconnected();
     void objectInitialized(SyncableObject *);
     void connected();
     void disconnected();
     void objectInitialized(SyncableObject *);
@@ -123,16 +122,19 @@ private:
 
     static const QMetaObject *metaObject(const QObject *obj);
 
 
     static const QMetaObject *metaObject(const QObject *obj);
 
-    void removePeer(AbstractPeer *peer);
+    void removePeer(Peer *peer);
     void removeAllPeers();
 
     template<class T>
     void dispatch(const T &protoMessage);
 
     void removeAllPeers();
 
     template<class T>
     void dispatch(const T &protoMessage);
 
-    void handle(AbstractPeer *peer, const Protocol::SyncMessage &syncMessage);
-    void handle(AbstractPeer *peer, const Protocol::RpcCall &rpcCall);
-    void handle(AbstractPeer *peer, const Protocol::InitRequest &initRequest);
-    void handle(AbstractPeer *peer, const Protocol::InitData &initData);
+    void handle(Peer *peer, const Protocol::SyncMessage &syncMessage);
+    void handle(Peer *peer, const Protocol::RpcCall &rpcCall);
+    void handle(Peer *peer, const Protocol::InitRequest &initRequest);
+    void handle(Peer *peer, const Protocol::InitData &initData);
+
+    template<class T>
+    void handle(Peer *peer, T) { Q_ASSERT(0); }
 
     bool invokeSlot(QObject *receiver, int methodId, const QVariantList &params, QVariant &returnValue);
     bool invokeSlot(QObject *receiver, int methodId, const QVariantList &params = QVariantList());
 
     bool invokeSlot(QObject *receiver, int methodId, const QVariantList &params, QVariant &returnValue);
     bool invokeSlot(QObject *receiver, int methodId, const QVariantList &params = QVariantList());
@@ -143,7 +145,7 @@ private:
 
     static void disconnectDevice(QIODevice *dev, const QString &reason = QString());
 
 
     static void disconnectDevice(QIODevice *dev, const QString &reason = QString());
 
-    QSet<AbstractPeer *> _peers;
+    QSet<Peer *> _peers;
 
     // containg a list of argtypes for fast access
     QHash<const QMetaObject *, ExtendedMetaObject *> _extendedMetaObjects;
 
     // containg a list of argtypes for fast access
     QHash<const QMetaObject *, ExtendedMetaObject *> _extendedMetaObjects;
@@ -168,8 +170,7 @@ private:
 
     friend class SignalRelay;
     friend class SyncableObject;
 
     friend class SignalRelay;
     friend class SyncableObject;
-    friend class InternalPeer;
-    friend class RemotePeer;
+    friend class Peer;
 };
 
 
 };
 
 
@@ -231,40 +232,4 @@ private:
     QHash<int, int> _receiveMap; // if slot x is called then hand over the result to slot y
 };
 
     QHash<int, int> _receiveMap; // if slot x is called then hand over the result to slot y
 };
 
-
-// ==================================================
-//  AbstractPeer
-// ==================================================
-class SignalProxy::AbstractPeer : public QObject
-{
-    Q_OBJECT
-
-public:
-    AbstractPeer(QObject *parent = 0) : QObject(parent) {}
-
-    virtual QString description() const = 0;
-
-    virtual void setSignalProxy(SignalProxy *proxy) = 0;
-
-    virtual bool isOpen() const = 0;
-    virtual bool isSecure() const = 0;
-    virtual bool isLocal() const = 0;
-
-    virtual int lag() const = 0;
-
-public slots:
-    virtual void dispatch(const Protocol::SyncMessage &msg) = 0;
-    virtual void dispatch(const Protocol::RpcCall &msg) = 0;
-    virtual void dispatch(const Protocol::InitRequest &msg) = 0;
-    virtual void dispatch(const Protocol::InitData &msg) = 0;
-
-    virtual void close(const QString &reason = QString()) = 0;
-
-signals:
-    void disconnected();
-    void error(QAbstractSocket::SocketError);
-    void secureStateChanged(bool secure = true);
-    void lagUpdated(int msecs);
-};
-
 #endif
 #endif
index d44cf2b..9b1395b 100644 (file)
@@ -79,7 +79,7 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent)
     p->setHeartBeatInterval(30);
     p->setMaxHeartBeatCount(60); // 30 mins until we throw a dead socket out
 
     p->setHeartBeatInterval(30);
     p->setMaxHeartBeatCount(60); // 30 mins until we throw a dead socket out
 
-    connect(p, SIGNAL(peerRemoved(SignalProxy::AbstractPeer*)), SLOT(removeClient(SignalProxy::AbstractPeer*)));
+    connect(p, SIGNAL(peerRemoved(Peer*)), SLOT(removeClient(Peer*)));
 
     connect(p, SIGNAL(connected()), SLOT(clientsConnected()));
     connect(p, SIGNAL(disconnected()), SLOT(clientsDisconnected()));
 
     connect(p, SIGNAL(connected()), SLOT(clientsConnected()));
     connect(p, SIGNAL(disconnected()), SLOT(clientsDisconnected()));
@@ -223,7 +223,7 @@ void CoreSession::addClient(InternalPeer *peer)
 }
 
 
 }
 
 
-void CoreSession::removeClient(SignalProxy::AbstractPeer *peer)
+void CoreSession::removeClient(Peer *peer)
 {
     RemotePeer *p = qobject_cast<RemotePeer *>(peer);
     if (p)
 {
     RemotePeer *p = qobject_cast<RemotePeer *>(peer);
     if (p)
index fdb952f..019d5b3 100644 (file)
@@ -28,7 +28,6 @@
 #include "corealiasmanager.h"
 #include "coreignorelistmanager.h"
 #include "message.h"
 #include "corealiasmanager.h"
 #include "coreignorelistmanager.h"
 #include "message.h"
-#include "signalproxy.h"
 #include "storage.h"
 
 class CoreBacklogManager;
 #include "storage.h"
 
 class CoreBacklogManager;
@@ -44,9 +43,11 @@ class EventManager;
 class EventStringifier;
 class InternalPeer;
 class IrcParser;
 class EventStringifier;
 class InternalPeer;
 class IrcParser;
+class Peer;
 class MessageEvent;
 class NetworkConnection;
 class RemotePeer;
 class MessageEvent;
 class NetworkConnection;
 class RemotePeer;
+class SignalProxy;
 
 struct NetworkInfo;
 
 
 struct NetworkInfo;
 
@@ -157,7 +158,7 @@ protected:
     virtual void customEvent(QEvent *event);
 
 private slots:
     virtual void customEvent(QEvent *event);
 
 private slots:
-    void removeClient(SignalProxy::AbstractPeer *peer);
+    void removeClient(Peer *peer);
 
     void recvStatusMsgFromServer(QString msg);
     void recvMessageFromServer(NetworkId networkId, Message::Type, BufferInfo::Type, const QString &target, const QString &text, const QString &sender = "", Message::Flags flags = Message::None);
 
     void recvStatusMsgFromServer(QString msg);
     void recvMessageFromServer(NetworkId networkId, Message::Type, BufferInfo::Type, const QString &target, const QString &text, const QString &sender = "", Message::Flags flags = Message::None);