From 2e99697d4922f37e9304ec360602fed71c8a306e Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Fri, 17 Oct 2025 11:36:49 +0200 Subject: add ability to abort http requests (#586) * add abort-check function to httpclient --- src/zenhttp/httpclient.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/zenhttp/httpclient.cpp') diff --git a/src/zenhttp/httpclient.cpp b/src/zenhttp/httpclient.cpp index e4575701a..43e9fb468 100644 --- a/src/zenhttp/httpclient.cpp +++ b/src/zenhttp/httpclient.cpp @@ -28,16 +28,21 @@ namespace zen { -extern HttpClientBase* CreateCprHttpClient(std::string_view BaseUri, const HttpClientSettings& ConnectionSettings); +extern HttpClientBase* CreateCprHttpClient(std::string_view BaseUri, + const HttpClientSettings& ConnectionSettings, + std::function&& CheckIfAbortFunction); using namespace std::literals; ////////////////////////////////////////////////////////////////////////// -HttpClientBase::HttpClientBase(std::string_view BaseUri, const HttpClientSettings& ConnectionSettings) +HttpClientBase::HttpClientBase(std::string_view BaseUri, + const HttpClientSettings& ConnectionSettings, + std::function&& CheckIfAbortFunction) : m_Log(zen::logging::Get(ConnectionSettings.LogCategory)) , m_BaseUri(BaseUri) , m_ConnectionSettings(ConnectionSettings) +, m_CheckIfAbortFunction(std::move(CheckIfAbortFunction)) { if (ConnectionSettings.SessionId == Oid::Zero) { @@ -200,13 +205,13 @@ HttpClient::Response::ThrowError(std::string_view ErrorPrefix) ////////////////////////////////////////////////////////////////////////// -HttpClient::HttpClient(std::string_view BaseUri, const HttpClientSettings& ConnectionSettings) +HttpClient::HttpClient(std::string_view BaseUri, const HttpClientSettings& ConnectionSettings, std::function&& CheckIfAbortFunction) : m_BaseUri(BaseUri) , m_ConnectionSettings(ConnectionSettings) { m_SessionId = GetSessionIdString(); - m_Inner = CreateCprHttpClient(BaseUri, ConnectionSettings); + m_Inner = CreateCprHttpClient(BaseUri, ConnectionSettings, std::move(CheckIfAbortFunction)); } HttpClient::~HttpClient() -- cgit v1.2.3