in source/http/HttpConnectionManager.cpp [190:221]
void HttpClientConnectionManager::s_onConnectionSetup(
aws_http_connection *connection,
int errorCode,
void *userData) noexcept
{
auto callbackArgs = static_cast<ConnectionManagerCallbackArgs *>(userData);
std::shared_ptr<HttpClientConnectionManager> manager = callbackArgs->m_connectionManager;
auto callback = std::move(callbackArgs->m_onClientConnectionAvailable);
Delete(callbackArgs, manager->m_allocator);
if (errorCode)
{
callback(nullptr, errorCode);
return;
}
auto allocator = manager->m_allocator;
auto connectionRawObj = Aws::Crt::New<ManagedConnection>(manager->m_allocator, connection, manager);
if (!connectionRawObj)
{
aws_http_connection_manager_release_connection(manager->m_connectionManager, connection);
callback(nullptr, AWS_ERROR_OOM);
return;
}
auto connectionObj = std::shared_ptr<ManagedConnection>(
connectionRawObj,
[allocator](ManagedConnection *managedConnection) { Delete(managedConnection, allocator); });
callback(connectionObj, AWS_OP_SUCCESS);
}