private Action <IMessage> SendTo(ClientWorker peer) { return(x => { Logger.LogTrace($"Sending {x.GetType()} to {peer.PeerPublicKey.ToHex()}"); NetworkMessage msg = x switch { PingReply pingReply => new NetworkMessage { PingReply = pingReply }, SyncBlocksReply syncBlockReply => new NetworkMessage { SyncBlocksReply = syncBlockReply }, SyncPoolReply syncPoolReply => new NetworkMessage { SyncPoolReply = syncPoolReply }, GetPeersReply getPeersReply => new NetworkMessage { GetPeersReply = getPeersReply }, _ => throw new InvalidOperationException() }; peer.AddMsgToQueue(msg); }); }
public void Broadcast(NetworkMessage networkMessage) { _broadcaster.AddMsgToQueue(networkMessage); }