}
if (channel.supportsOption(Options.WRITE_TIMEOUT)) {
writeChannel = new WriteTimeoutStreamSinkChannel(writeChannel);
}
final PushBackStreamChannel pushBackStreamChannel = new PushBackStreamChannel(readChannel);
final AssembledConnectedStreamChannel assembledChannel;
if (channel instanceof SslChannel) {
assembledChannel = new AssembledConnectedSslStreamChannel((SslChannel) channel, readChannel, writeChannel);
} else {
assembledChannel = new AssembledConnectedStreamChannel(channel, readChannel, writeChannel);
}
final HttpClientConnection connection = new HttpClientConnectionImpl(assembledChannel, pushBackStreamChannel, options, HttpClientImpl.this);
result.setResult(connection);
connections.add(connection);
}