Allow peer-specific sending and receiving of remote signals
authorManuel Nickschas <sputnick@quassel-irc.org>
Sun, 10 Nov 2013 22:25:07 +0000 (23:25 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Thu, 26 Dec 2013 20:02:58 +0000 (21:02 +0100)
commitf44459818f34b556df8ff2f400098c50b78501eb
tree205b0a7ad296554fb0d3f6bd8fd478fae8c8a7d9
parent47a6910aed00018c7230cc2cc90ae8e80fa77dda
Allow peer-specific sending and receiving of remote signals

For file transfers and possibly other use cases, it is important to know
which peer has received a specific signal, and to allow sending remote
signals only through a particular peer rather than multicasting to all connected
clients.

For this reason, we now treat attached signals/slots specially if their first
argument is a PeerPtr (a typedef for Peer *):

* An attached slot will have a pointer to the peer which received the signal in
  its first argument
* An attached signal on the core side will be relayed only through the peer that
  is given as the first argument (and the receiving slot will have a pointer to
  the client-side peer in this argument)
* The peer argument for an attached signal on the client side will be ignored,
  as clients only have one peer anyway
src/common/signalproxy.cpp
src/common/signalproxy.h
src/common/types.h