public async Task<BrokerConnection> GetOpenConnectionFor(BrokerMetadata broker) { var connection = _Connections.GetOrAdd(broker.NodeId, x => CreateConnectionFor(broker)); await connection.AssertOpen(); return connection; }
public BrokerConnection(BrokerMetadata brokerConfig) { _BrokerConfig = brokerConfig; _Client = new TcpClient(); }
private BrokerConnection CreateConnectionFor(BrokerMetadata broker) { return new BrokerConnection(broker); }
private Task<MetadataResponse> GetMetadataTask(BrokerMetadata config) { return _BrokersConnectionPool .GetOpenConnectionFor(config) .ContinueWith(y => y.Result.SendAndReturn(MetadataRequest.ForAll).Result as MetadataResponse); }