AXIAM C++ SDK 1.0.0-alpha8
Authentication, authorization, JWKS & route guards (REST + mTLS)
Loading...
Searching...
No Matches
http_curl.hpp
Go to the documentation of this file.
1// Default libcurl-backed transport: HTTP + strict TLS (§6) + in-memory mTLS
2// client identity (§6.1) + a per-client cookie engine (§4). No temporary files:
3// CA and client identity are passed as libcurl BLOBs.
4#pragma once
5
6#include <memory>
7
8#include "axiam/transport.hpp"
9
10namespace axiam {
11
30public:
31 explicit CurlTransport(TlsConfig cfg);
33
34 CurlTransport(const CurlTransport&) = delete;
36
40
44
45private:
46 struct Impl;
47 std::unique_ptr<Impl> impl_;
48};
49
52
53} // namespace axiam
Owns a POOL of libcurl easy handles (up to TlsConfig::max_concurrent_requests) whose cookie jar,...
Definition http_curl.hpp:29
static Transport make_transport(TlsConfig cfg)
Build a Transport (std::function) that forwards to a shared CurlTransport, so the cookie engine and T...
CurlTransport(TlsConfig cfg)
CurlTransport & operator=(const CurlTransport &)=delete
HttpResponse perform(const HttpRequest &req)
Perform one HTTP exchange.
CurlTransport(const CurlTransport &)=delete
Definition authenticator.hpp:40
std::function< HttpResponse(const HttpRequest &)> Transport
The transport seam. Injectable; defaults to the libcurl implementation.
Definition transport.hpp:56
void ensure_curl_global_init()
Process-wide libcurl init/cleanup guard (idempotent).
An outgoing HTTP request produced by the client's request builder.
Definition transport.hpp:32
An HTTP response, or a transport failure.
Definition transport.hpp:42
Immutable TLS / mTLS material handed to the libcurl transport factory.
Definition transport.hpp:61