Realm C++ SDK Versão C++ v2.2.0

http.hpp

1
2//
3// Autores 2024 Realm Inc.
4//
5// Licenciado sob a Licença Apache, Versão 2.0 (a "Licença");
6// você não pode usar este arquivo, exceto em conformidade com a Licença.
7// Você pode obter uma cópia da Licença em
8//
9// http://www.apache.org/license/LICENSE-2.0
10//
11// A menos que exigido pela lei aplicável ou acordado por escrito, o software
12// distribuído sob a Licença é distribuído "Como está",
13// sem garantias ou condições de qualquer tipo, Express ou implícitas.
14// Consulte a Licença para obter as permissões específicas de domínio do idioma e
15// limitações da Licença.
16//
18
19#ifndef CPPREALM_NETWORKING_HTTP_HPP
20#define CPPREALM_NETWORKING_HTTP_HPP
21
22#include <cprealm/internal/bridge/realm.hpp>
23
24#ifndef REALMCXX_VERSION_MAJOR
25#include <cpprealm/version_numbers.hpp>
26#endif
27
28#include <optional>
29#include <map>
30#include <string>
31
32namespace Realm::network {
33
37 enumeração classe http_method { get, post, patch, put, del };
41 using http_headers = std::map<std::string, std::string>;
42
46 estrutura, estrutura request {
50 método http_method = http_method::get;
51
55 std::string URL;
56
61 uint64_t timeout_ms = 0;
62
66 cabeçalhos http_headers ;
67
71 std::string body;
72 };
73
77 estrutura, estrutura resposta {
82
87
91 cabeçalhos http_headers ;
92
96 std::string body;
97
101 std::opcional <std::int32_t> client_error_code;
102
103 };
104
105 // Interface para fornecer transporte HTTP
106 estrutura, estrutura http_transport_client {
107 virtual ~http_transport_client() = padrão;
108 virtual vaziosend_request_to_server(const query e solicitação,
109 std::function <null(respostaconst &)>&& conclusão) = 0;
110 };
111
113 std::shared_ptr<http_transport_client> create_http_client();
115 [[ maybe_unused]] set_http_client_factory (std::function <std::shared_ptr<http_transport_client>()>&&);
116
118 estrutura, estrutura default_http_transport : público http_transport_client {
119 estrutura, estrutura configuração {
123 std::optional<std::map<std::string, std::string>> custom_http_headers;
127 std::opcional<::realm::internal::bridge::realm::sync_config::proxy_config> proxy_config;
128
129 usando SSLVerifyCallback = bool(const std::string& server_address,
130 internal::bridge:: Realm::sync_config::proxy_config::port_type server_port,
131 const char* pem_data, size_t pem_size, int preverify_ok, int depth);
139 std::opcional<std::string> ssl_rust_certificate_path;
145 std::function<SSLVerifyCallback> ssl_verify_callback;
146 };
147
148 default_http_transport() = default;
149 default_http_transport(configuração const & c) : m_configuration(c) {}
150
151 ~default_http_transport() = padrão;
152
153 vazio send_request_to_server(const :: Realm::network:: request & query ,
154 std::function <null(const :: Realm::network::response&)>&& conclusão);
155
156 protegido:
157 configuração m_configuration;
158 };
159}
160
161#endif //CPPREALM_NETWORKING_HTTP_HPP
std::opcional<::realm::internal::bridge::realm::sync_config::proxy_config > proxy_config
Definition: http.hpp:127
std::opcional< std::string > ssl_rust_certificate_path
Definition: http.hpp:139
std::function< SSLVerifyCallback > ssl_verify_callback
Definition: http.hpp:145
std::optional< std::map< std::string, std::string > > custom_http_headers
Definition: http.hpp:123
Construído em cliente de transporte HTTP .
Definition: http.hpp:118
Definition: http.hpp:46
http_headers cabeçalhos
Definition: http.hpp:66
std::string corpo
Definition: http.hpp:71
uint64_t timeout_ms
Definition: http.hpp:61
método http_method
Definition: http.hpp:50
std::string URL
Definition: http.hpp:55
Definition: http.hpp:77
std::string corpo
Definition: http.hpp:96
http_headers cabeçalhos
Definition: http.hpp:91
std::opcional < std::int32_t > client_error_code
Definition: http.hpp:101
int custom_status_code
Definition: http.hpp:86
int http_status_code
Definition: http.hpp:81