forgeant docs-test-0
Build LLM-powered agents in C++
Loading...
Searching...
No Matches
client.hpp
Go to the documentation of this file.
1#ifndef FORGEANT_HTTP_CLIENT_HPP
2#define FORGEANT_HTTP_CLIENT_HPP
3
5#include <functional>
6#include <future>
7#include <string>
8#include <string_view>
9#include <unordered_map>
10
11namespace forgeant {
12
13using HttpHeaders = std::unordered_map<std::string, std::string>;
14using StreamCallback = std::function<bool(std::string_view)>;
15
17 public:
18 virtual ~HttpClient() = default;
19
20 virtual HttpResponse post(const std::string& url, const HttpHeaders& headers,
21 const std::string& body) = 0;
22
23 virtual std::future<HttpResponse> async_post(const std::string& url, const HttpHeaders& headers,
24 const std::string& body) = 0;
25
26 virtual HttpResponse post_stream(const std::string& url, const HttpHeaders& headers,
27 const std::string& body, StreamCallback on_chunk) = 0;
28
29 HttpClient() = default;
30 HttpClient(const HttpClient&) = delete;
31 HttpClient& operator=(const HttpClient&) = delete;
32 HttpClient(HttpClient&&) = default;
34};
35
36} // namespace forgeant
37
38#endif // FORGEANT_HTTP_CLIENT_HPP
Definition client.hpp:16
HttpClient & operator=(HttpClient &&)=default
HttpClient(const HttpClient &)=delete
virtual HttpResponse post(const std::string &url, const HttpHeaders &headers, const std::string &body)=0
virtual ~HttpClient()=default
virtual HttpResponse post_stream(const std::string &url, const HttpHeaders &headers, const std::string &body, StreamCallback on_chunk)=0
HttpClient & operator=(const HttpClient &)=delete
virtual std::future< HttpResponse > async_post(const std::string &url, const HttpHeaders &headers, const std::string &body)=0
HttpClient(HttpClient &&)=default
Definition agent.hpp:25
std::unordered_map< std::string, std::string > HttpHeaders
Definition client.hpp:13
std::function< bool(std::string_view)> StreamCallback
Definition client.hpp:14
Definition response.hpp:9