19#ifndef CPPREALM_APP_HPP
20#define CPPREALM_APP_HPP
22#include <cpprealm/bson.hpp>
23#include <cprealm/db.hpp>
25#include <cprealm/internal/bridge/realm.hpp>
26#include <cprealm/internal/bridge/sync_error.hpp>
27#include <cprealm/internal/bridge/sync_manager.hpp>
28#include <cprealm/internal/bridge/sync_session.hpp>
29#include <cprealm/internal/bridge/utils.hpp>
30#include <cpprealm/network/http.hpp>
31#include <cpprealm/network/websocket.hpp>
38 usando proxy_config = sync_config::proxy_config;
39 usando sync_session = initial::bridge::sync_session;
41 aplicativo
namespace {
42 aplicativo
de classe ;
46 namespace interno::bridge {
62 [[nodiscard]] std::string_view message()
const;
64 [[nodiscard]] std::string_view link_to_server_logs()
const;
66 [[nodiscard]]
bool is_json_error()
const;
68 [[nodiscard]]
bool is_service_error()
const;
70 [[nodiscard]]
bool is_http_error()
const;
72 [[nodiscard]]
bool is_custom_error()
const;
74 [[nodiscard]]
bool is_client_error()
const;
76#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
77 internal::bridge::storage::AppError m_error[1];
79 std::shared_ptr<realm::app::AppError> m_error;
96 user& operator=(
const user&) =
default;
98 explícito usuário(std::shared_ptr<app::usuário><app::User>
usuário);
99 bool is_logged_in()
const;
139 [[nodiscard]]
db_config flexible_sync_configuration()
const;
148 vazio log_out(std::function <
vazio(std::opcional<app_error>)>&& chamada de resposta)
const;
150 [[nodiscard]] std::future<void> log_out()
const;
153 [[deprecated(
"Replaced by `get_custom_data()'. Este método será removido em uma versão futura.")]]
154 [[nodiscard]] std::optional<std::string> custom_data()
const;
160 [[nodiscard]] std::optional<bsoncxx::document>
get_custom_data()
const;
170 [[deprecated(
"Esta função está obsoleta e será substituída pela API call_function baseada em BSON.")]]]
171 vazio call_function(
const std::string& nome,
const std::string& args_ejson,
172 std::function <
null(std::opcional<std::string>, std::opcional<app_error>)> chamada de resposta de resposta )
const;
182 [[deprecated(
"Esta função está obsoleta e será substituída pela API call_function baseada em BSON.")]]]
183 [[nodiscard]] std::future <std::opcional<std::string>>
call_function(
const std::string& name,
184 const std::string& args_ejson)
const;
194 vazio call_function(
const std::string& name,
const std::vector<bsoncxx>& args_bson,
195 std::function < null (std::opcional<bsoncxx> <app_error>< bsoncxx >,
std::opcional)>
chamada de resposta de resposta ) const ;
204 [[nodiscard]] std::future<std::optional<bsoncxx>>
call_function(
const std::string& name,
const std::vector<bsoncxx>& args_bson)
const;
216 std::shared_ptr<app::User> m_user;
219bool operator==(
const user& lhs,
const user& rhs);
220operador
bool !=(
const user& lhs,
const user& rhs);
222aplicativo
namespace {
223 estrutura AppCredentials;
243 [[deprecated(
"As opções de rede devem ser fornecidas por meio de implementações de rede personalizadas.")]]]
244 std::optional <std::map <std::string, std::string>> custom_http_headers;
249 [[deprecated(
"As opções de rede devem ser fornecidas por meio de implementações de rede personalizadas.")]]]
250 std::opcional<sync_config::proxy_config> proxy_configuration;
266 App(
configuração const &);
270 estático credenciais api_key(
const std::string& chave);
271 estático credenciais Facebook(
const std::string& access_token);
273 estático credenciais google_auth_code(
const std::string& auth_code);
274 estático credenciais google_ID(
const std::string& ID);
275 estático credenciais personalizadas(
const std::string& token);
276 estático credenciais username_password(
const std::string& nome de usuário,
const std::string& senha);
277 estático função de
credenciais (
const std::string& carga útil);
286 operador app::AppCredentials()
const;
289#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
290 internal::bridge::storage::AppCredentials m_credentials[1];
292 std::shared_ptr<app::AppCredentials> m_credentials;
296 std::future<void> subscribe_user(
const std::string& username,
const std::string& password);
300 [[nodiscard]] std::optional<user> get_current_user()
const;
301 vazio clear_cached_apps();
302 std::opcional<App> get_cached_app(
const std::string& app_id,
const std::optional<std::string>& base_url);
303 std::string get_base_url()
const;
305#ifdef Realm_ENABLE_EXPERIMENTAL
314 [[nodiscard]] std::future<void> update_base_url(std::string base_url)
const;
319 std::shared_ptr<app::App> m_app;
320 Aplicativo(std::Shared_ptr<app::App>&& a) : m_app(std::move(a)) { }
bool enable_cashing
Armazena em cache um aplicativo e sua configuração para um determinado ID de aplicativo. Ativado por padrão.
Definição: app.hpp:248
std::opcional< std::string > base_url
Um URL de base personalizado para solicitar. Se não for definido ou definido como nulo, o URL base padrão para serviços de aplicativos...
Definição: app.hpp:240
std::opcional< std::string > caminho
Localização personalizada para arquivos Realm .
Definição: app.hpp:242
std::opcional < std::array < chart, 64 > > metadata_encryption_key
chave de criptografia personalizada para os metadados Realm.
Definição: app.hpp:246
std::shared_ptr< networking::sync_socket_provider > sync_socket_provider
Definição: app.hpp:261
std::shared_ptr< networking::http_transport_client > http_transport_client
Definição: app.hpp:257
std::string app_id
O ID do aplicativo para seu aplicativo Atlas Device Sync .
Definição: app.hpp:238
Definição: sync_manager.hpp:33
std::string refresh_token() const
Definição: app.cpp:181
vazio call_function(const std::string &name, const std::string &args_ejson, std::function< vazio(std::opcional< std::string >, std::opcional< app_error >)> chamada de resposta) const
Definição: app.cpp:245
std::opcional< bsoncxx::document > get_custom_data() const
Definição: app.cpp:236
state
Definição: app.hpp:104
std::string access_token() const
Definição: app.cpp:170
std::future< void > refresh_custom_user_data() const
Definição: app.cpp:311
std::string identificador() const
Definição: app.cpp:151