Ditto 2.0.6
Rga.hpp
1#ifndef _DITTO_RGA_
2#define _DITTO_RGA_
3
4#include "AbstractDocumentPath.hpp"
5
6#include "Helpers.hpp"
7
8#include "dittoffi.hpp"
9
10#include <vector>
11
12namespace ditto {
18class Rga {
19 friend class AbstractDocumentPath;
20
21public:
27 Rga(std::vector<nlohmann::json> value = std::vector<nlohmann::json>())
28 DITTO_DEPRECATED;
29
30 DittoCrdtType get_type() const;
31
36 std::vector<nlohmann::json> get_value() const;
37
38protected:
39 // TODO : use std::any when we bump up to C++17.
40 // The array representation of the RGA.
41 std::vector<nlohmann::json> value;
42
43 // Size accessor to the inner value
44 size_t size() const;
45};
46
47void to_json(nlohmann::json &j, const Rga &a);
48
49} // namespace ditto
50
51#endif
Provides an interface to specify a path to a key in a document that you can then call various update ...
Definition: AbstractDocumentPath.hpp:21
Represents a CRDT Replicated Growable Array (RGA) that can be upserted as part of a document or assig...
Definition: Rga.hpp:18
Rga(std::vector< nlohmann::json > value=std::vector< nlohmann::json >()) DITTO_DEPRECATED
Construct a new Rga object than can be used as part of a document's context.
Definition: Rga.cpp:15
std::vector< nlohmann::json > get_value() const
Return the array representation of the RGA.
Definition: Rga.cpp:13
basic_json<> json
default JSON class
Definition: json.hpp:2933