X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fsignalproxy.h;h=a985d0dcdba79de4a8ac97a634e6ce807760008d;hp=b0933968f6fbdd51cfa4f3be042c02c487ffe650;hb=b1b970e71618cb2d2cf372ba55234000c6324d7f;hpb=1e7b6cda464041cac334b03a8b01679b4b9a56d3 diff --git a/src/common/signalproxy.h b/src/common/signalproxy.h index b0933968..a985d0dc 100644 --- a/src/common/signalproxy.h +++ b/src/common/signalproxy.h @@ -78,6 +78,11 @@ public: void dumpProxyStats(); void dumpSyncMap(SyncableObject *object); + /** + * This method allows to send a signal only to a limited set of peers + * @param peerIds A list of peers that should receive it + * @param closure Code you want to execute within of that restricted environment + */ void restrictTargetPeers(std::initializer_list peerIds, std::function closure); inline int peerCount() const { return _peers.size(); } @@ -85,6 +90,11 @@ public: Peer *peerById(int peerId); + /** + * @return If handling a signal, the Peer from which the current signal originates + */ + Peer *sourcePeer() { return _sourcePeer; } + public slots: void detachObject(QObject *obj); void detachSignals(QObject *sender); @@ -178,6 +188,8 @@ private: QSet _restrictedTargets; bool _restrictMessageTarget = false; + Peer *_sourcePeer; + friend class SignalRelay; friend class SyncableObject; friend class Peer;