internal void ConnectTo(ITransport transport, TransportCallback connectCallback) { if (transport == null) { throw new ArgumentNullException(nameof(transport)); } if (transport.Network == null) { throw new ArgumentNullException("transport.Network"); } if (transport.ConnectionType == ConnectionType.NodeConnection) { // XXX: This doesn't belong here. Have LocalNodeConnection set this up // and call me with the proper callback. var connection = new LocalNodeConnection(transport); transport.Operation = connection; transport.Network.AddConnection(connection); transportManager.Add(transport, delegate { connection.Start(); connectCallback?.Invoke(transport); }); } else { transportManager.Add(transport, connectCallback); } }