internal static void ConnectTo(ITransport transport, TransportCallback connectCallback)
{
if (transport == null)
{
throw new ArgumentNullException("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.
LocalNodeConnection connection = new LocalNodeConnection(transport);
transport.Operation = connection;
transport.Network.AddConnection(connection);
transportManager.Add(transport, delegate(ITransport bleh)
{
connection.Start();
if (connectCallback != null)
{
connectCallback(transport);
}
});
}
else
{
transportManager.Add(transport, connectCallback);
}
}