Ditto 4.9.4
 
Loading...
Searching...
No Matches
UpdateResult.hpp
1#ifndef _DITTO_UPDATE_RESULT_
2#define _DITTO_UPDATE_RESULT_
3
4#include "DocumentId.hpp"
5
6#include "json.hpp"
7
8#include <string>
9
10namespace ditto {
11
20enum class UpdateResultType {
21 Set,
22 Removed,
23 Incremented,
24};
25
30struct UpdateResult {
31 friend struct UpdateResultSet;
32 friend struct UpdateResultRemoved;
33 friend struct UpdateResultIncremented;
34
39
44 std::string path;
45
49 UpdateResultType type;
50
51 virtual ~UpdateResult() = default;
52
53private:
54 UpdateResult(DocumentId document_id, std::string path, UpdateResultType type);
55};
56
61struct UpdateResultSet : UpdateResult {
62 friend class MutableDocumentPath;
63
67 nlohmann::json value;
68
69private:
70 UpdateResultSet(DocumentId document_id, std::string path,
71 nlohmann::json value);
72};
73
78struct UpdateResultRemoved : UpdateResult {
79 friend class MutableDocumentPath;
80
81private:
82 UpdateResultRemoved(DocumentId document_id, std::string path);
83};
84
89struct UpdateResultIncremented : UpdateResult {
90 friend class MutableDocumentPath;
91
95 double amount;
96
97private:
98 UpdateResultIncremented(DocumentId document_id, std::string path,
99 double amount);
100};
101
102} // namespace ditto
103
104#endif
An identifier for a Document.
Definition DocumentId.hpp:21
std::string path
Definition UpdateResult.hpp:44
UpdateResultType type
Definition UpdateResult.hpp:49
DocumentId document_id
Definition UpdateResult.hpp:38
double amount
Definition UpdateResult.hpp:95
nlohmann::json value
Definition UpdateResult.hpp:67