X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fsignalproxy.h;h=9243608ff9ee51b5450767fc2af4b6434d1b5250;hp=f2490ba52c275c1e31eabd2d7a68372c079dd44b;hb=cc0cad583046c34cb1296329016e1834995d171d;hpb=5c35ac3ee6f951d39cc052925aa224debfa148a8 diff --git a/src/common/signalproxy.h b/src/common/signalproxy.h index f2490ba5..9243608f 100644 --- a/src/common/signalproxy.h +++ b/src/common/signalproxy.h @@ -119,6 +119,9 @@ public: void dumpProxyStats(); +protected: + void customEvent(QEvent *event); + private slots: void dataAvailable(); void detachSender(); @@ -158,6 +161,7 @@ private: void receivePackedFunc(AbstractPeer *sender, const QVariant &packedFunc); void receivePeerSignal(AbstractPeer *sender, const RequestType &requestType, const QVariantList ¶ms); + void receivePeerSignal(SignalProxy *sender, const RequestType &requestType, const QVariantList ¶ms); void handleSync(AbstractPeer *sender, QVariantList params); void handleInitRequest(AbstractPeer *sender, const QVariantList ¶ms); void handleInitData(AbstractPeer *sender, const QVariantList ¶ms); @@ -197,8 +201,9 @@ private: IODevicePeer(QIODevice *device, bool compress) : AbstractPeer(AbstractPeer::IODevicePeer), _device(device), byteCount(0), usesCompression(compress), sentHeartBeats(0), lag(0) {} virtual void dispatchSignal(const RequestType &requestType, const QVariantList ¶ms); inline void dispatchPackedFunc(const QVariant &packedFunc) { SignalProxy::writeDataToDevice(_device, packedFunc, usesCompression); } - inline QIODevice *device() const { return _device; } + QString address() const; inline bool isOpen() const { return _device->isOpen(); } + inline void close() const { _device->close(); } inline bool readData(QVariant &item) { return SignalProxy::readDataFromDevice(_device, byteCount, item, usesCompression); } private: QIODevice *_device; @@ -211,10 +216,11 @@ private: class SignalProxyPeer : public AbstractPeer { public: - SignalProxyPeer(SignalProxy *proxy) : AbstractPeer(AbstractPeer::SignalProxyPeer), proxy(proxy) {} + SignalProxyPeer(SignalProxy *sender, SignalProxy *receiver) : AbstractPeer(AbstractPeer::SignalProxyPeer), sender(sender), receiver(receiver) {} virtual void dispatchSignal(const RequestType &requestType, const QVariantList ¶ms); private: - SignalProxy *proxy; + SignalProxy *sender; + SignalProxy *receiver; }; // a Hash of the actual used communication object to it's corresponding peer