Ditto 4.11.1
 
Loading...
Searching...
No Matches
Sync.hpp
1#ifndef _DITTO_SYNC_
2#define _DITTO_SYNC_
3
4#include "Ditto.hpp"
5
6#include "json.hpp"
7#include <mutex>
8#include <set>
9
10namespace ditto {
11
12class DittoHandleWrapper;
14
15class Sync {
16 friend class Ditto;
17 Sync(std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper);
18 std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper;
19 void set_weak_ditto_fields(std::weak_ptr<Ditto::Fields> weak_ditto_fields);
20 std::weak_ptr<Ditto::Fields> weak_ditto_fields;
21
22 // This mutex synchronizes access to the `subscriptions` set.
23 std::shared_ptr<std::mutex> synchronized;
24
25 friend class SyncSubscription;
30 bool unregister_subscription(std::shared_ptr<SyncSubscription> subscription);
31
32 void remove_subscription(std::shared_ptr<SyncSubscription> subscription);
33
34public:
44 DITTO_DEPRECATED std::set<std::shared_ptr<SyncSubscription>> subscriptions;
45
61 std::shared_ptr<SyncSubscription>
62 register_subscription(std::string query, nlohmann::json query_args = nullptr);
63
67 std::set<std::shared_ptr<SyncSubscription>> get_subscriptions() const;
68};
69
70} // namespace ditto
71
72#endif // !_DITTO_SYNC_
DITTO_DEPRECATED std::set< std::shared_ptr< SyncSubscription > > subscriptions
Set of active subscriptions.
Definition Sync.hpp:44
std::shared_ptr< SyncSubscription > register_subscription(std::string query, nlohmann::json query_args=nullptr)
Installs and returns a sync subscription for a query, configuring Ditto to receive updates from other...
Definition Sync.cpp:21
std::set< std::shared_ptr< SyncSubscription > > get_subscriptions() const
Returns a snapshot of all active subscriptions.
Definition Sync.cpp:67
A sync subscription configures Ditto to receive updates from remote peers about documents matching th...
Definition SyncSubscription.hpp:20