public bool AddOrUpdatePeer(IPeerIdentification peerIdentification, IPEndPoint ipEndPoint) { _peers.TryGetValue(peerIdentification, out IPEndPoint existingValue); if (ipEndPoint.Equals(existingValue)) { return(false); } _peers[peerIdentification] = ipEndPoint; return(existingValue == null); }
protected bool DisposedValue; // To detect redundant calls public UDPNetworking(IPeerIdentification peerName, IPeerManager peerManager, ISerializer serializer, IPEndPoint ipEndPoint) { PeerName = peerName; PeerManager = peerManager; Serializer = serializer; UDPClient = new UDPClient(ipEndPoint); UDPClient.OnMessageReceived += (sender, udpResult) => RecieveMessageAsync(udpResult.Buffer, udpResult.RemoteEndPoint); UDPClient.OnMessageReceivedFailure += (sender, exception) => OnMessageReceivedFailure?.Invoke(sender, exception); UDPClient.OnMessageSendFailure += (sender, exception) => OnMessageSendFailure?.Invoke(sender, exception); UDPClient.WaitForStartup(); }
public void TestMethodFaker() { IPeerManager peerManagement = new PeerManager(); IPeerIdentification peerIdentification = _faker.Random.PeerIdentification(); IPEndPoint ipEndPoint = _faker.Internet.IpEndPoint(); //Add peerManagement.AddOrUpdatePeer(_faker.Random.PeerIdentification(), _faker.Internet.IpEndPoint()); peerManagement.AddOrUpdatePeer(_faker.Random.PeerIdentification(), _faker.Internet.IpEndPoint()); peerManagement.AddOrUpdatePeer(peerIdentification, _faker.Internet.IpEndPoint()); //Update peerManagement.AddOrUpdatePeer(peerIdentification, ipEndPoint); IPEndPoint result = peerManagement[peerIdentification]; }
public bool Equals(IPeerIdentification obj) { return(Equals((object)obj)); }
public IPEndPoint this[IPeerIdentification peerIdentification] => GetPeerIPEndPoint(peerIdentification);
public IPEndPoint GetPeerIPEndPoint(IPeerIdentification peerIdentification) { _peers.TryGetValue(peerIdentification, out IPEndPoint ipEndPoint); return(ipEndPoint); }