public void SetOutgoing(Func<TransportMessage, Task> outgoing)
{
this.outgoing = msg =>
{
outgoingTransport.Add(msg);
return outgoing(msg);
};
}
Broker Register(MessageUnit unit, Address address) { if (!units.ContainsKey(address)) { units.Add(address, new List<MessageUnit>()); unit.SetOutgoing(Outgoing); units[address].Add(unit); } return this; }