Ditto 4.6.0
Loading...
Searching...
No Matches
Ditto.hpp
1#ifndef _DITTO_DITTO_
2#define _DITTO_DITTO_
3
4#include "DiskUsage.hpp"
5#include "Identity.hpp"
6#include "LogLevel.hpp"
7#include "Presence.hpp"
8#include "SmallPeerInfo.hpp"
9
10#include "TransportConfig.hpp"
11
12#include "Helpers.hpp"
13
14#include <memory>
15
16#ifdef __ANDROID__
17#include <jni.h>
18#endif /* __ANDROID__ */
19
20namespace ditto {
21class Authenticator;
22class Store;
23class StoreObserver;
24class Sync;
25class SyncSubscription;
32class Ditto {
33 friend class AttachmentFetcher;
34 friend class AttachmentFetcherCtx;
35 friend class Authenticator;
36 friend class Collection;
37 friend class Store;
38 friend class StoreObserver;
39 friend class Sync;
40 friend class SyncSubscription;
41 friend class ValidityListener;
42
43public:
51 explicit Ditto(
52 std::shared_ptr<Identity> identity = Identity::OfflinePlayground(),
53 std::string persistence_dir = "");
54
55 Ditto(Ditto const &other) = delete;
56 Ditto(Ditto &&other) noexcept;
57 Ditto &operator=(Ditto const &other) = delete;
58 Ditto &operator=(Ditto &&other) noexcept;
59 ~Ditto();
60
67 std::shared_ptr<Authenticator> get_auth() const;
68
74 Store &get_store() const;
75
82
87 Sync &sync() const;
88
94 Presence &get_presence() const;
95
101 DiskUsage &get_disk_usage() const;
102
109
116 bool get_is_sync_active() const;
117
128
140 void start_sync() const;
141
148 void stop_sync() const;
149
161 void disable_sync_with_v3() const;
162
173
185 void
187
193 static std::string get_sdk_version();
194
200 static bool get_logging_enabled();
201
208 static void set_logging_enabled(bool enabled);
209
217
224 static void set_emoji_log_level_headings_enabled(bool enabled);
225
231 static LogLevel get_minimum_log_level();
232
240 static void set_minimum_log_level(LogLevel log_level);
241
256 void run_garbage_collection() const;
257
262 std::string get_app_id() const;
263
268 std::string get_persistence_directory() const;
269
276 PresenceObserver observe_peers(PresenceCallback cb);
277
282 void close();
283#ifdef __ANDROID__
296
312 std::vector<std::string> missing_permissions() const;
313
327#endif
328
329private:
330 struct Fields;
331 std::shared_ptr<Fields> fields;
332 bool is_closable;
333
334 explicit Ditto(std::shared_ptr<Fields> fields);
335
336 void validity_updated(bool web_valid, bool x509_valid) const;
337 void set_is_closable(bool is_closable);
338 std::shared_ptr<DittoHandleWrapper> get_handle_wrapper();
339
340 friend struct ValidityListenerCtx;
341 friend struct StoreObserverCtx;
342};
343} // namespace ditto
344
345#endif
These objects are returned by calls to Store::fetch_attachment.
Definition AttachmentFetcher.hpp:28
Provides access to authentication information and methods for logging on to Ditto Cloud....
Definition Authenticator.hpp:27
A reference to a collection in a Store.
Definition Collection.hpp:27
Provides an interface to be able to monitor local files.
Definition DiskUsage.hpp:65
The entrypoint to the Ditto SDK.
Definition Ditto.hpp:32
static bool get_logging_enabled()
Gets whether or not logging is enabled for Ditto.
Definition Ditto.cpp:332
TransportConfig get_transport_config() const
Returns the current transport config.
Definition Ditto.cpp:260
void stop_sync() const
Stops all network transports.
Definition Ditto.cpp:290
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:348
void set_transport_config(TransportConfig config)
Assign a new transports configuration.
Definition Ditto.cpp:305
void run_garbage_collection() const
Removes all sync metadata for any remote peers which aren't currently connected.
Definition Ditto.cpp:352
void disable_sync_with_v3() const
Explicitly opt-in to disabling the ability to sync with Ditto peers running any version of the SDK in...
Definition Ditto.cpp:300
bool get_is_sync_active() const
Returns a flag indicating whether or not sync is active. Use start_sync to activate sync and stop_syn...
Definition Ditto.cpp:264
static void set_logging_enabled(bool enabled)
Sets whether or not logging is enabled for Ditto.
Definition Ditto.cpp:334
std::string get_app_id() const
Get the Ditto application Id.
Definition Ditto.cpp:403
static bool get_emoji_log_level_headings_enabled()
Gets whether or not emoji log level headings are enabled for Ditto.
Definition Ditto.cpp:338
Sync & sync() const
Provides access to the SDK's sync functionality.
Definition Ditto.cpp:256
DiskUsage & get_disk_usage() const
Provides access to the SDK's disk usage.
Definition Ditto.cpp:258
Presence & get_presence() const
Provides access to the SDK's presence functionality.
Definition Ditto.cpp:401
SmallPeerInfo & get_small_peer_info() const
Provides access to the SDK's Small Peer Info functionality.
Definition Ditto.cpp:252
PresenceObserver observe_peers(PresenceCallback cb)
TODO.
Ditto(std::shared_ptr< Identity > identity=Identity::OfflinePlayground(), std::string persistence_dir="")
Initializes a new Ditto instance.
Definition Ditto.cpp:110
void update_transport_config(std::function< void(TransportConfig &config)> lambda)
Convenience method to update the current transport config of the receiver.
Definition Ditto.cpp:318
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:227
void close()
Shut down Ditto and release all resources. Must be called before recreating a Ditto instance that use...
Definition Ditto.cpp:426
static LogLevel get_minimum_log_level()
Gets the minimum log level at which logs will be emitted for Ditto.
Definition Ditto.cpp:346
Store & get_store() const
Provides access to the SDK's store functionality.
Definition Ditto.cpp:250
void start_sync() const
Starts the network transports. Ditto will connect to other devices and sync with them where appropria...
Definition Ditto.cpp:266
std::shared_ptr< Authenticator > get_auth() const
Provides access to authentication information and methods for logging on to Ditto Cloud.
Definition Ditto.cpp:248
std::string get_persistence_directory() const
Get the persistence directory used by Ditto to persist data.
Definition Ditto.cpp:411
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:342
static std::string get_sdk_version()
Returns a string identifying the version of the Ditto SDK.
Definition Ditto.cpp:325
static std::shared_ptr< OfflinePlaygroundIdentity > OfflinePlayground(std::string app_id="", uint64_t site_id=0)
Construct a new OfflinePlaygroundIdentity.
Definition Identity.cpp:25
Definition Presence.hpp:25
The entrypoint for small peer user info collection.
Definition SmallPeerInfo.hpp:18
Provides access to Collections and a write transaction API.
Definition Store.hpp:29
Definition StoreObserver.hpp:44
Definition Sync.hpp:14
A sync subscription configures Ditto to receive updates from remote peers about documents matching th...
Definition SyncSubscription.hpp:18
A configuration object specifying which network transports Ditto should use to sync data.
Definition TransportConfig.hpp:370
Definition Arc.hpp:10
Definition Ditto.cpp:38
Definition validity_listener.cpp:11