Ditto 1.1.7
WriteTransactionPendingCursorOperation.hpp
1#ifndef _DITTO_WRITE_TRANSACTION_PENDING_CURSOR_OPERATION_
2#define _DITTO_WRITE_TRANSACTION_PENDING_CURSOR_OPERATION_
3
4#include "Document.hpp"
5#include "DocumentId.hpp"
6#include "MutableDocument.hpp"
7#include "SortDirection.hpp"
8#include "UpdateResult.hpp"
9#include "WriteTransaction.hpp"
10
11#include <functional>
12#include <memory>
13#include <string>
14#include <unordered_map>
15#include <vector>
16
17namespace ditto {
18using nlohmann::json;
19
20class DittoHandleWrapper;
21
28 friend class ScopedWriteTransaction;
29
30 json query_args;
31 WriteTransaction &base_transaction;
32 uint32_t _offset = 0;
33 int32_t _limit = -1;
34
36 std::string collection_name, std::string query, json query_args,
37 std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper,
38 WriteTransaction &base_transaction);
39
43 operator=(WriteTransactionPendingCursorOperation &&other) noexcept;
44
45 class Impl;
46 std::unique_ptr<Impl> impl_;
47
48public:
50
54 std::string collection_name;
55
59 std::string query;
60
71
88
102 SortDirection direction);
103
111 std::vector<Document> exec() const;
112
123 std::unordered_map<DocumentId, std::vector<std::unique_ptr<UpdateResult>>,
124 DocumentIdHasher>
125 update(std::function<void(std::vector<MutableDocument> &)> fn) const;
126
133 std::vector<DocumentId> remove() const;
134
141 std::vector<DocumentId> evict() const;
142};
143} // namespace ditto
144#endif
ScopedWriteTransaction exposes functionality that allows you to perform multiple operations on the st...
Definition: ScopedWriteTransaction.hpp:23
WriteTransaction exposes functionality that allows you to perform multiple operations on the store wi...
Definition: WriteTransaction.hpp:25
These objects are returned when using find-like functionality on ScopedWriteTransactions....
Definition: WriteTransactionPendingCursorOperation.hpp:27
WriteTransactionPendingCursorOperation & limit(uint32_t limit)
Limit the number of documents that get returned when querying a collection for matching documents.
Definition: WriteTransactionPendingCursorOperation.cpp:81
std::unordered_map< DocumentId, std::vector< std::unique_ptr< UpdateResult > >, DocumentIdHasher > update(std::function< void(std::vector< MutableDocument > &)> fn) const
Update documents that match the query generated by the preceding function chaining.
Definition: WriteTransactionPendingCursorOperation.cpp:101
std::vector< DocumentId > remove() const
Remove all documents that match the query generated by the preceding function chaining.
Definition: WriteTransactionPendingCursorOperation.cpp:118
WriteTransactionPendingCursorOperation & sort(std::string query, SortDirection direction)
Sort the documents that match the query provided in the preceding find-like function call.
Definition: WriteTransactionPendingCursorOperation.cpp:87
std::string query
Definition: WriteTransactionPendingCursorOperation.hpp:59
std::vector< DocumentId > evict() const
Evict all documents that match the query generated by the preceding function chaining.
Definition: WriteTransactionPendingCursorOperation.cpp:130
std::string collection_name
Definition: WriteTransactionPendingCursorOperation.hpp:54
std::vector< Document > exec() const
Execute the query generated by the preceding function chaining and return the list of matching docume...
Definition: WriteTransactionPendingCursorOperation.cpp:93
WriteTransactionPendingCursorOperation & offset(uint32_t offset)
Offset the resulting set of matching documents.
Definition: WriteTransactionPendingCursorOperation.cpp:75
basic_json<> json
default JSON class
Definition: json.hpp:2933