private void EnsureUplinkPump(TcpClient endpoint, ConnectionId connectionId) { var localDataChannel = new LocalTcpDataChannel(_log, _metrics.Local, connectionId.ToString(), endpoint); var uplinkPump = new UplinkPump(_log, connectionId, localDataChannel, _dataChannel); _uplinkPumps[uplinkPump] = uplinkPump; _downlinkPump?.AddDispatchQueue(connectionId, localDataChannel); _metrics.LocalEstablishedConnections.Increment(); _log.Verbose("ConnectionId {connectionId}. uplink pump is created", connectionId); uplinkPump.RunAsync().ContinueWith(OnUplinkPumpCompleted); }
private async Task <ILocalDataChannelWriter> CreateLocalDataChannel(ConnectionId connectionId) { var localDataChannel = await _localDataChannelFactory.Create(_log, _metrics.Local, connectionId); var uplinkPump = new UplinkPump(_log, connectionId, localDataChannel, _relayDataChannel); _uplinkPumps[uplinkPump] = uplinkPump; _metrics.LocalEstablishedConnections.Increment(); #pragma warning disable 4014 uplinkPump.RunAsync().ContinueWith(OnUplinkPumpCompleted); #pragma warning restore 4014 return(localDataChannel); }