Ditto 1.1.3
Ditto.hpp
1#ifndef _DITTO_DITTO_SYNC_KIT_
2#define _DITTO_DITTO_SYNC_KIT_
3
4#include "Identity.hpp"
5#include "LogLevel.hpp"
6#include "Store.hpp"
7#include "TransportConfig.hpp"
8
9#include "Helpers.hpp"
10
11#include <memory>
12
13namespace ditto {
14class Authenticator;
15class DittoHandleWrapper;
16class Transports;
17class ValidityListener;
18
25class Ditto {
26 friend class Authenticator;
27 friend class ValidityListener;
28
29public:
37 explicit Ditto(
38 std::shared_ptr<Identity> identity = Identity::OfflinePlayground(),
39 std::string persistence_dir = "");
40
41 Ditto(Ditto const &other) = delete;
42 Ditto(Ditto &&other) noexcept;
43 Ditto &operator=(Ditto const &other) = delete;
44 Ditto &operator=(Ditto &&other) noexcept;
45 ~Ditto();
46
53 std::shared_ptr<Authenticator> get_auth() const;
54
60 Store &get_store() const;
61
68 bool get_is_sync_active() const;
69
80 void set_license_token(std::string license_token) DITTO_DEPRECATED;
81
91 void set_offline_only_license_token(std::string license_token);
92
103 void set_access_license(std::string license_str) DITTO_DEPRECATED;
104
115 void try_start_sync() const;
116
129 void start_sync() const DITTO_DEPRECATED;
130
137 void stop_sync() const;
138
149
155 static std::string get_sdk_version();
156
162 static bool get_logging_enabled();
163
170 static void set_logging_enabled(bool enabled);
171
179
186 static void set_emoji_log_level_headings_enabled(bool enabled);
187
193 static LogLevel get_minimum_log_level();
194
202 static void set_minimum_log_level(LogLevel log_level);
203
218 void run_garbage_collection() const;
219
220private:
221 class Fields;
222 std::shared_ptr<Fields> fields;
223
224 explicit Ditto(std::shared_ptr<Fields> fields);
225
226 void apply_transport_config(TransportConfig &config,
227 TransportConfig &old_config) const;
228 void apply_transport_global_config(Global &config, Global &old_config) const;
229 void apply_auth_validity_changed(bool web, bool old_web, bool x509,
230 bool old_x509) const;
231 void validity_updated(bool web_valid, bool x509_valid) const;
232};
233} // namespace ditto
234
235#endif
Provides access to authentication information and methods for logging on to Ditto Cloud....
Definition: Authenticator.hpp:26
Definition: Ditto.cpp:32
The entrypoint to the Ditto SDK.
Definition: Ditto.hpp:25
static bool get_logging_enabled()
Gets whether or not logging is enabled for Ditto.
Definition: Ditto.cpp:536
void set_access_license(std::string license_str) DITTO_DEPRECATED
Activate an offline Ditto instance by setting a license token. You cannot initiate sync on an offline...
Definition: Ditto.cpp:227
void stop_sync() const
Stops all network transports.
Definition: Ditto.cpp:512
static void set_minimum_log_level(LogLevel log_level)
Sets the minimum log level at which logs should be emitted for Ditto.
Definition: Ditto.cpp:552
void set_transport_config(TransportConfig config)
Assign a new transports configuration.
Definition: Ditto.cpp:520
void run_garbage_collection() const
Removes all sync metadata for any remote peers which aren't currently connected.
Definition: Ditto.cpp:556
void start_sync() const DITTO_DEPRECATED
Starts the network transports. Ditto will connect to other devices and sync with them where appropria...
Definition: Ditto.cpp:503
bool get_is_sync_active() const
Returns a flag indicating whether or not sync is active. Use try_start_sync to activate sync and stop...
Definition: Ditto.cpp:242
static void set_logging_enabled(bool enabled)
Sets whether or not logging is enabled for Ditto.
Definition: Ditto.cpp:538
static bool get_emoji_log_level_headings_enabled()
Gets whether or not emoji log level headings are enabled for Ditto.
Definition: Ditto.cpp:542
Ditto(std::shared_ptr< Identity > identity=Identity::OfflinePlayground(), std::string persistence_dir="")
Initializes a new Ditto instance.
Definition: Ditto.cpp:94
void try_start_sync() const
Starts the network transports. Ditto will connect to other devices and sync with them where appropria...
Definition: Ditto.cpp:486
void set_offline_only_license_token(std::string license_token)
Activate an offline Ditto instance by setting a license token. You cannot initiate sync on an offline...
Definition: Ditto.cpp:206
static LogLevel get_minimum_log_level()
Gets the minimum log level at which logs will be emitted for Ditto.
Definition: Ditto.cpp:550
Store & get_store() const
Provides access to the SDK's store functionality.
Definition: Ditto.cpp:240
std::shared_ptr< Authenticator > get_auth() const
Provides access to authentication information and methods for logging on to Ditto Cloud.
Definition: Ditto.cpp:238
static void set_emoji_log_level_headings_enabled(bool enabled)
Sets whether or not emoji log level headings are enabled for Ditto.
Definition: Ditto.cpp:546
void set_license_token(std::string license_token) DITTO_DEPRECATED
Activate an offline Ditto instance by setting a license token. You cannot initiate sync on an offline...
Definition: Ditto.cpp:199
static std::string get_sdk_version()
Returns a string identifying the version of the Ditto SDK.
Definition: Ditto.cpp:529
Definition: TransportConfig.hpp:211
static std::shared_ptr< OfflinePlaygroundIdentity > OfflinePlayground(std::string app_id="", uint64_t site_id=0, std::string persistence_dir="")
Construct a new OfflinePlaygroundIdentity.
Definition: Identity.cpp:36
Provides access to Collections and a write transaction API.
Definition: Store.hpp:20
A configuration object specifying which network transports Ditto should use to sync data.
Definition: TransportConfig.hpp:258
Definition: validity_listener.hpp:12