Ditto  3.0.4
PendingIDSpecificOperation.hpp
1 #ifndef _DITTO_PENDING_ID_SPECIFIC_OPERATION_
2 #define _DITTO_PENDING_ID_SPECIFIC_OPERATION_
3 
4 #include "Document.hpp"
5 #include "DocumentId.hpp"
6 #include "Helpers.hpp"
7 #include "LiveQuery.hpp"
8 #include "MutableDocument.hpp"
9 #include "Subscription.hpp"
10 #include "UpdateResult.hpp"
11 
12 #include "json.hpp"
13 
14 #include <functional>
15 #include <memory>
16 #include <string>
17 #include <vector>
18 
19 namespace ditto {
20 
41  friend class Collection;
42 
43  std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper;
44  std::string query;
45 
47  std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper,
48  std::string collection_name, DocumentId id);
49 
50  std::shared_ptr<LiveQuery> observe_internal(
51  Subscription *subscription, LiveQueryAvailability_t availability,
53 
54  std::shared_ptr<LiveQuery> observe_internal(
55  Subscription *subscription, LiveQueryAvailability_t availability,
56  SingleDocumentLiveQueryEventWithNextSignalCallback event_callback) const;
57 
58 public:
62  std::string collection_name;
63 
68 
76  std::shared_ptr<Document> exec() const;
77 
89  std::vector<std::unique_ptr<UpdateResult>>
90  update(std::function<void(MutableDocument &)> fn);
91 
98  bool remove() const;
99 
106  bool evict() const;
107 
121  std::shared_ptr<Subscription> subscribe() const;
122 
144  std::shared_ptr<LiveQuery>
145  observe_local(SingleDocumentLiveQueryEventCallback event_callback) const;
146 
169  std::shared_ptr<LiveQuery> observe_local_with_next_signal(
170  SingleDocumentLiveQueryEventWithNextSignalCallback event_callback) const;
171 };
172 } // namespace ditto
173 #endif
A reference to a collection in a Store.
Definition: Collection.hpp:26
This is used as part of update operations for documents.
Definition: MutableDocument.hpp:29
These objects are returned when using Collection::find_by_id functionality.
Definition: PendingIDSpecificOperation.hpp:40
bool remove() const
Remove the document with the matching ID.
Definition: PendingIDSpecificOperation.cpp:138
std::shared_ptr< Document > exec() const
Execute the find operation to return the document with the matching ID.
Definition: PendingIDSpecificOperation.cpp:40
std::shared_ptr< Subscription > subscribe() const
Subscribe to changes from other peers that occur in relation to the relevant document.
Definition: PendingIDSpecificOperation.cpp:119
DocumentId id
Definition: PendingIDSpecificOperation.hpp:67
std::shared_ptr< LiveQuery > observe_local(SingleDocumentLiveQueryEventCallback event_callback) const
Enables you to listen for changes that occur locally in relation to the relevant document.
Definition: PendingIDSpecificOperation.cpp:44
std::string collection_name
Definition: PendingIDSpecificOperation.hpp:62
std::vector< std::unique_ptr< UpdateResult > > update(std::function< void(MutableDocument &)> fn)
Update the document with the matching ID using the provided function.
Definition: PendingIDSpecificOperation.cpp:126
bool evict() const
Evict the document with the matching ID.
Definition: PendingIDSpecificOperation.cpp:150
std::shared_ptr< LiveQuery > observe_local_with_next_signal(SingleDocumentLiveQueryEventWithNextSignalCallback event_callback) const
Enables you to listen for changes that occur locally in relation to the relevant document,...
Definition: PendingIDSpecificOperation.cpp:51
While Subscription objects remain in scope they ensure that documents in the collection specified,...
Definition: Subscription.hpp:19
An identifier for a Document.
Definition: DocumentId.hpp:21
A thin wrapper around a function that will get called when there are updates relating to a live query...
Definition: LiveQuery.hpp:59