private void AddOrUpdate(TcpConnectionDescriptor connection, EndPointViewModel local, EndPointViewModel foreign) { TcpConnectionViewModel viewModel; if (!_connectionsToViewModel.TryGetValue(connection, out viewModel)) { viewModel = new TcpConnectionViewModel(local, foreign, connection.State); _connectionsToViewModel.Add(connection, viewModel); _edges.Add(viewModel); } }
private EndPointViewModel AddOrUpdate(EndPoint endPoint, out bool added) { EndPointViewModel viewModel; if (!_endPointsToViewModel.TryGetValue(endPoint, out viewModel)) { viewModel = new EndPointViewModel(endPoint); _endPointsToViewModel.Add(endPoint, viewModel); _nodes.Add(viewModel); added = true; } else { added = false; } return(viewModel); }
public void Update() { foreach (TcpConnectionDescriptor connection in _engine.AllConnections) { bool added; EndPointViewModel local = AddOrUpdate(connection.LocalEndPoint, out added); if (added) { _edges.Add(new Edge { Node1 = _localComputer, Node2 = local }); } bool unused; EndPointViewModel foreign = AddOrUpdate(connection.ForeignEndPoint, out unused); AddOrUpdate(connection, local, foreign); } }
public TcpConnectionViewModel(EndPointViewModel localEndPoint, EndPointViewModel foreign, TcpState state) { _localEndPoint = localEndPoint; _foreignEndPoint = foreign; _state = state; }