private void NetworkPeerUnaccessibleEventHandler(object sender, NetworkPeerChangedEventArgs e) { if (this.ManagerState == ManagerStateEnum.Started) { FindService(); } }
internal void wrapper_NetworkPeerDiscovered(object sender, NetworkPeerChangedEventArgs e) { if (InvokeRequired) { Discovered d = new Discovered(wrapper_NetworkPeerDiscovered); ((MasterForm)d.Target).Invoke(d, new object[] { sender, e }); return; } Wrapper wrapper = (Wrapper)sender; LOGGER.Info("NetworkPeerDiscovered, HostId: " + wrapper.NetworkManager.Localhost.Id + ", Count: " + e.NetworkPeers.Count); TreeView tv = mTreeViewsById[wrapper.Id]; ICollection <NetworkContext> contexts = wrapper.KnownNetworkContexts; int rootIndex = 0; foreach (NetworkContext nc in contexts) { TreeNode rootNode = null; if (tv.Nodes.Count <= rootIndex || !tv.Nodes[rootIndex].Text.Equals(nc.Name)) { rootNode = new TreeNode(nc.Name); tv.Nodes.Insert(rootIndex, rootNode); mRootNodes[wrapper.Id].Add(nc.Name, rootNode); } else { rootNode = mRootNodes[wrapper.Id][nc.Name]; } ICollection <INetworkPeerRemote> peers = nc.KnownNetworkPeers; int i = 0; foreach (INetworkPeerRemote peer in peers) { string peerId = peer.Id; if (rootNode.Nodes.Count <= i || !rootNode.Nodes[i].Name.Equals(peerId)) { TreeNode node = new TreeNode(string.Format("{0} ({1})", peerId, peer.Distance)); node.Tag = peer; node.Name = peerId; mPeerNodes[wrapper.Id].Add(peer.Id, node); rootNode.Nodes.Insert(i, node); SetNodeFont(node, peer); } i++; } rootIndex++; } }
internal void wrapper_NetworkPeerDistanceChanged(object sender, NetworkPeerChangedEventArgs e) { if (InvokeRequired) { DistanceChanged d = new DistanceChanged(wrapper_NetworkPeerDistanceChanged); ((MasterForm)d.Target).Invoke(d, new object[] { sender, e }); return; } Wrapper wrapper = (Wrapper)sender; LOGGER.Info("NetworkPeerDistanceChanged, HostId: " + wrapper.NetworkManager.Localhost.Id + ", Count: " + e.NetworkPeers.Count); Dictionary <string, TreeNode> nodes = mPeerNodes[wrapper.Id]; foreach (INetworkPeerRemote peer in e.NetworkPeers) { TreeNode node = nodes[peer.Id]; node.Text = string.Format("{0} ({1})", peer.Id, peer.Distance); SetNodeFont(node, peer); } }