Realm C++ SDK 버전 v2.2.0

http.hpp

1
2//
3//저작권 2024 Realm Inc.
4//
5// Apache 라이선스, 버전 2.0("라이선스")에 따라 라이선스가 부여됩니다.
6// 라이선스를 준수하는 경우를 제외하고는 이 파일을 사용할 수 없습니다.
7// 다음에서 라이선스 사본을 얻을 수 있습니다.
8//
9// http://www.apache.org/licences/LICENSE-2.0
10//
11// 관련 법률에서 요구하거나 문서로 동의하지 않는 한, 소프트웨어
12// 라이선스에 따라 배포되는 것은 '있는 그대로' 배포됩니다,
13// Express 묵시적이든 어떤 종류의 보증이나 조건도 제공하지 않습니다.
14// 권한을 관리하는 특정 언어에 대한 내용은 라이선스를 참조하세요.
15// 라이선스에 따른 제한 사항.
16//
18
19#ifndef CPPREALM_NETWORKING_HTTP_HPP
20#define CPPREALM_NETWORKING_HTTP_HPP
21
22#include <cpprealm/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
32네임스페이스 영역::네트워킹 {
33
37 열거형 클래스 http_method { get, 게시, Patch, put, del };
41 using http_headers = std::map<std::string, std::string>;
42
46 구조체 request {
50 http_method 메서드 = http_method::get;
51
55 std::string URL;
56
61 uint64_t timeout_ms = 0;
62
66 http_headers 헤더;
67
71 std::string body;
72 };
73
77 구조체 응답 {
82
87
91 http_headers 헤더;
92
96 std::string body;
97
101 std::optional<std::int32_t> client_error_code;
102
103 };
104
105 // HTTP 전송을 제공하기 위한 인터페이스
107 가상 ~http_transport_client() = 기본값;
108 가상 send_request_to_server (const 요청& 요청,
109 std::function<oid(const response&)>&& completed) = 0;
110 };
111
113 std::shared_ptr<http_transport_client> make_http_client();
115 [[maybe_unused]] oid set_http_client_factory (std::function<std::shared_ptr<http_transport_client>()>&&);
116
119 구조체 구성 {
123 std::optional<std::map<std::string, std::string>> custom_http_headers;
127 std::optional<::realm::internal::bridge::realm::sync_config::proxy_config> proxy_config;
128
129 SSLVerifyCallback = bool(const std::string& server_address,
130 internal::bridge:: 영역::sync_config::proxy_config::port_type server_port,
131 const char* pem_data, size_t pem_size, int preverify_ok, int depth);
135 부울 client_validate_ssl = true;
139 std::optional<std::string> ssl_ Trust_certificate_path;
145 std::function<SSLVerifyCallback> ssl_verify_callback;
146 };
147
148 default_http_transport() = default;
149 default_http_transport(const configuration& c) : m_configuration(c) {}
150
151 ~default_http_transport() = 기본값;
152
153 oid send_request_to_server(const :: 영역::net워킹::request& 요청,
154 std::function<oid(const :: 영역::net워킹::response&)>&& 완료);
155
156 보호됨:
157 구성 m_configuration;
158 };
159}
160
161#endif //CPPREALM_NETWORKING_HTTP_HPP
std::optional<::realm::internal::bridge::realm::sync_config::proxy_config > proxy_config
Definition: http.hpp:127
std::optional< std::string > ssl_ Trust_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
내장 HTTP 전송 클라이언트.
Definition: http.hpp:118
Definition: http.hpp:46
http_headers 헤더
Definition: http.hpp:66
std::string body
Definition: http.hpp:71
uint64_t timeout_ms
Definition: http.hpp:61
http_method 메서드
Definition: http.hpp:50
std::string URL
Definition: http.hpp:55
Definition: http.hpp:77
std::string body
Definition: http.hpp:96
http_headers 헤더
Definition: http.hpp:91
std::optional< 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