void IRepository.RemovePeers(RemotePeer[] peers) { foreach (var peer in peers) { bool wasThere = _peers.Remove(peer.CallbackUri); if (wasThere) _counters.Discovery_State_AliveRemotePeers--; } }
void IManager.HandleHelloMessage(string callbackUri, string role, DateTime lastSeen) { if (_self.repo.HasPeer(callbackUri)) { _self.repo.KeepAlive(callbackUri, lastSeen); _counters.Discovery_Event_HelloMsgIsKeepAlive++; return; } var peer = new RemotePeer { CallbackUri = callbackUri, Role = role, LastSeen = lastSeen }; _self.repo.AddPeer(peer); var subscribers = _self.repo.GetSubscribers(); int count = subscribers.Length; foreach (var subscriber in subscribers) { fire_notification(subscriber, callbackUri, role, true); } _counters.Discovery_Event_HelloNotificationsProduced += count; trace("{0} hello notifications are generated", count); }
void IRepository.AddPeer(RemotePeer peer) { _peers[peer.CallbackUri] = peer; _counters.Discovery_State_AliveRemotePeers++; }