Realm C++ SDK 버전 v2.2.0

app.hpp

1
2//
3//저작권 2022 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 CPPRALM_APP_HPP
20#defin CPPRALM_APP_HPP
21
22#include <cpprealm/bson.hpp>
23#include <cpprealm/db.hpp>
24
25#include <cpprealm/internal/bridge/realm.hpp>
26#include <cpprealm/internal/bridge/sync_error.hpp>
27#include <cpprealm/internal/bridge/sync_manager.hpp>
28#include <cpprealm/internal/bridge/sync_session.hpp>
29#include <cpprealm/internal/bridge/utils.hpp>
30#include <cpprealm/net워킹/http.hpp>
31#include <cpprealm/net워킹/websocket.hpp>
32
33#include <future>
34#include <utility>
35
36네임스페이스 영역 {
37
38 proxy_config 사용 = sync_config::proxy_config;
39 using sync_session = Internal::bridge::sync_session;
40
41 네임스페이스 앱 {
42 class App;
43 클래스 사용자
44 struct AppError;
45 }// 네임스페이스 앱
46 네임스페이스 내부::브릿지 {
47 struct sync_error;
48 }
49
50// 표시: 사용자
51
52// 서버의 오류 상태를 나타냅니다.
53구조체 app_error {
54 app_error() = delete;
55 app_error(const app_error& other);
56 app_error& 연산자=(const app_error& other) ;
57 app_error(app_error&& other);
58 app_error& 연산자=(app_error&& other);
59 ~app_error();
60 app_error(영역::app::AppError&& 오류); //NOLINT(google-explicit-constructor)
61
62 [[nodiscard]] std::string_view message() const;
63
64 [[nodiscard]] std::string_view link_to_server_logs() const;
65
66 [[nodiscard]] bool is_json_error() const;
67
68 [[nodiscard]] bool is_service_error() const;
69
70 [[nodiscard]] bool is_http_error() const;
71
72 [[nodiscard]] bool is_custom_error() const;
73
74 [[nodiscard]] bool is_client_error() const;
75private:
76#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
77 internal::bridge:: 저장::AppError m_error[1];
78#else
79 std::shared_ptr<realm::app::AppError> m_error;
80#endif
81};
82
92구조체 사용자 {
93 user() = 기본값;
94 user(const user&) = 기본값;
95 user(user&&) = 기본값;
96 user& 연산자=(const user&) = 기본값;
97 user& operator=(user&&) = 기본값;
98 명시적 user(std::shared_ptr<app::User> user);
99 bool is_logged_in() const;
100
104 열거형 클래스 state : uint8_t {
105 logged_out,
106 logged_in,
107 제거됨,
108 };
109
114 [[nodiscard]] std::string 식별자() const;
115
119 [[nodiscard]] 상태 상태() const;
120
127 [[nodiscard]] std::string access_token() const;
128
135 [[nodiscard]] std::string refresh_token() const;
136
137 구조체 Internal::bridge::sync_manager sync_manager() const;
138
139 [[nodiscard]] db_config flexible_sync_configuration() const;
140
148 oid log_out (std::function< oid(std::optional<<app_error> app_error >)>&& 콜백) const;
149
150 [[nodiscard]] std::future<void> log_out() const;
151
152
153 [[deprecated("`get_custom_data()`(으)로 대체되었습니다. 이 메서드는 향후 릴리스에서 제거될 예정입니다.")]]
154 [[nodiscard]] std::optional<std::string> custom_data() const;
155
160 [[nodiscard]] std::optional<bsoncxx::document> get_custom_data() const;
161
170 [[deprecated("이 함수는 더 이상 사용되지 않으며 BSON 기반 호출 함수 API 로 대체될 예정입니다.")]]
171 void 호출 함수(const std::string& name, const std::string& args_ejson,
172 std::function<<std::string>oid<app_error> (std::optional, std::optional< app_error >)> 콜백) const ;
173
182 [[deprecated("이 함수는 더 이상 사용되지 않으며 BSON 기반 호출 함수 API 로 대체될 예정입니다.")]]
183 [[nodiscard]] std::future<std::optional<std::string>> call_function(const std::string& name,
184 const std::string& args_ejson) const;
185
194 void 호출 함수(const std::string& name, const std::vector<bsoncxx>& args_bson,
195 std::function<<bsoncxx>oid<app_error> (std::optional< bsoncxx >, std::optional)> 콜백) const ;
196
204 [[nodiscard]] std::future<std::optional<bsoncxx>> 호출 함수(const std::string& name, const std::vector<bsoncxx>& args_bson) const;
205
209 void refresh_custom_user_data(std::function<void(std::Optional<app_error>)> 콜백);
210
214 [[nodiscard]] std::future<void> refresh_custom_user_data() const;
215
216 std::shared_ptr<app::User> m_user;
217};
218
219bool 연산자==(const user& lhs, const user& rhs);
220bool operator!=(const user& lhs, const user& rhs);
221
222네임스페이스 앱 {
223 struct AppCredentials;
224}
225
226클래스 {
227public:
236 구조체 구성 {
238 std::string app_id;
240 std::optional<std::string> base_url;
242 std::optional<std::string> 경로;
243 [[deprecated("네트워크 옵션은 사용자 지정 네트워크 구현을 통해 제공해야 합니다.")]]
244 std::optional<std::map<std::string, std::string>> custom_http_headers;
246 std::optional<std:: 배열<char, 64>> metadata_encryption_key;
248 부울 enable_cashing = true;
249 [[deprecated("네트워크 옵션은 사용자 지정 네트워크 구현을 통해 제공해야 합니다.")]]
250 std::optional<sync_config::proxy_config> proxy_configuration;
257 std::shared_ptr<networking::http_transport_client> http_transport_client;
261 std::shared_ptr<networking::sync_socket_provider> sync_socket_provider;
262
263 };
264
265
266 (const 구성&);
267
268 구조체 자격 증명 {
269 static 자격 증명 anonymous();
270 static 자격 증명 api_key(const std::string& key);
271 static facebook (const std::string& access_token);
272 static 자격 증명 Apple(const std::string& id_token);
273 static 자격 증명 google_auth_code(const std::string& auth_code);
274 static 자격 증명 google_id_token(const std::string& id_token);
275 static 자격 증명 custom(const std::string& token);
276 static 자격 증명 username_password(const std::string& 사용자 이름, const std::string& 비밀번호);
277 static 자격 증명 function(const std::string& 페이로드);
279 자격 증명(const 자격 증명& 기타) ;
280 자격 증명& 연산자=(const 자격 증명& 기타) ;
282 credentials& 연산자=(credentials&& other);
283 ~credentials();
284 private:
285 자격 증명(app::AppCredentials&& credentials) noException;
286 연산자 app::AppCredentials() const;
287 친구 클래스 ;
288
289#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
290 internal::bridge::storage::AppCredentials m_credentials[1];
291#else
292 std::shared_ptr<app::AppCredentials> m_credentials;
293#endif
294 };
295
296 std::future<void> Register_user(const std::string& 사용자이름, const std::string& password);
297 std::future<user> login(const credentials &credentials);
298 void login(const credentials& credentials, std::function<void(user, std::Optional<app_error>)>&& 콜백);
299 [[nodiscard]] internal::bridge::sync_manager get_sync_manager() const;
300 [[nodiscard]] std::optional<user> get_current_user() const;
301 void clear_cached_apps();
302 std::optional<App> get_cached_app(const std::string& app_id, const std::optional<std::string>& base_url);
303 std::string get_base_url() const;
304
305#ifdef REALM_ENABLE_EXPERIMENTAL
314 [[nodiscard]] std::future<void> update_base_url(std::string base_url) const;
315#endif
316
317 [[nodiscard]] std::string path_for_realm(const realm::sync_config&) const;
318private:
319 std::shared_ptr<app::App> m_app;
320 (std::shared_PTr<app::App>&& a) : m_app(std::move(a)) { }
321};
322
323}
324#endif /* CPPRALM_APP_HPP */
정의: app.hpp:226
정의: app.hpp:236
bool enable_cashing
지정된 앱 ID 에 대한 앱과 해당 구성을 캐시합니다. 기본값 켜져 있습니다.
정의: app.hpp:248
std::optional< std::string > base_url
요청 사용자 지정 기본 URL 입니다. 설정하다 하지 않거나 nil로 설정하다 하면 앱 서비스의 기본값 기본 URL입니다...
정의: app.hpp:240
std::optional< std::string > 경로
Realm 파일의 사용자 지정 위치 입니다.
정의: app.hpp:242
std::optional< std:: 배열< char, 64 > > metadata_encryption_key
메타데이터 Realm 에 대한 사용자 지정 암호화 키 입니다.
정의: app.hpp:246
std::shared_ptr< networking::sync_socket_provider > sync_socket_provider
정의: app.hpp:261
std::shared_ptr< networking::http_transport_client > http_transport_client
정의: app.hpp:257
std::string app_id
Atlas Device Sync 애플리케이션의 앱 ID 입니다.
정의: app.hpp:238
정의: app.hpp:268
정의: app.hpp:53
정의: sync_manager.hpp:33
정의: app.hpp:92
std::string refresh_token() const
정의: app.cpp:181
void 호출 함수(&name, const std::문자열 &args_ejson, std::function< void(std::Optional< std::string >, std::Optional< app_error >)> 콜백) const
정의: app.cpp:245
std::optional< bsoncxx::document > get_custom_data() const
정의: app.cpp:236
상태
정의: app.hpp:104
std::string access_token() const
정의: app.cpp:170
std::future< void > refresh_custom_user_data() const
정의: app.cpp:311
std::string 식별자() const
정의: app.cpp:151