Пример #1
0
        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);
            }
        }