31 #ifndef LEDGER_CORE_DYNAMICOBJECT_HPP 32 #define LEDGER_CORE_DYNAMICOBJECT_HPP 34 #include "../api/DynamicArray.hpp" 35 #include "../api/DynamicObject.hpp" 36 #include "../api/DynamicType.hpp" 37 #include <cereal/cereal.hpp> 38 #include "../collections/collections.hpp" 39 #include "DynamicValue.hpp" 40 #include "DynamicArray.hpp" 41 #include <cereal/types/map.hpp> 42 #include <cereal/types/unordered_map.hpp> 64 std::shared_ptr<DynamicObject>
put(
const std::string& key, T value) {
69 return shared_from_this();
78 std::shared_ptr<api::DynamicObject>
getObject(
const std::string &key)
override;
79 std::shared_ptr<api::DynamicArray>
getArray(
const std::string &key)
override;
81 std::shared_ptr<api::DynamicObject>
putString(
const std::string &key,
const std::string &value)
override;
82 std::shared_ptr<api::DynamicObject>
putInt(
const std::string &key, int32_t value)
override;
83 std::shared_ptr<api::DynamicObject>
putLong(
const std::string &key, int64_t value)
override;
84 std::shared_ptr<api::DynamicObject>
putDouble(
const std::string &key,
double value)
override;
85 std::shared_ptr<api::DynamicObject>
putBoolean(
const std::string &key,
bool value)
override;
86 std::shared_ptr<api::DynamicObject>
putData(
const std::string &key,
const std::vector<uint8_t> &value)
override;
87 std::shared_ptr<api::DynamicObject> putObject(
const std::string &key,
const std::shared_ptr<api::DynamicObject> &value)
override;
88 std::shared_ptr<api::DynamicObject> putArray(
const std::string &key,
const std::shared_ptr<api::DynamicArray> &value)
override;
90 bool contains(
const std::string &key)
override;
92 bool remove(
const std::string &key)
override;
94 std::vector<std::string>
getKeys()
override;
98 std::string
dump()
override;
100 std::vector<uint8_t>
serialize()
override;
103 void setReadOnly(
bool enable);
105 std::shared_ptr<api::DynamicObject> updateWithConfiguration(
const std::shared_ptr<DynamicObject> &configuration);
106 int64_t
size()
override;
108 std::ostream&
dump(std::ostream& ss,
int depth)
const;
110 template <
class Archive>
112 ar(_values.getContainer());
122 #endif //LEDGER_CORE_DYNAMICOBJECT_HPP std::shared_ptr< api::DynamicObject > putInt(const std::string &key, int32_t value) override
Definition: DynamicObject.cpp:78
optional< std::string > getString(const std::string &key) override
Definition: DynamicObject.cpp:42
Definition: DynamicObject.hpp:30
std::shared_ptr< api::DynamicObject > putBoolean(const std::string &key, bool value) override
Definition: DynamicObject.cpp:94
optional< int64_t > getLong(const std::string &key) override
Definition: DynamicObject.cpp:50
std::shared_ptr< api::DynamicObject > putString(const std::string &key, const std::string &value) override
Definition: DynamicObject.cpp:74
std::shared_ptr< DynamicObject > put(const std::string &key, T value)
A generic and type-safe put.
Definition: DynamicObject.hpp:64
int64_t size() override
Definition: DynamicObject.cpp:162
optional< bool > getBoolean(const std::string &key) override
Definition: DynamicObject.cpp:58
Definition: MapLike.hpp:44
std::shared_ptr< api::DynamicObject > putDouble(const std::string &key, double value) override
Definition: DynamicObject.cpp:86
optional< api::DynamicType > getType(const std::string &key) override
Definition: DynamicObject.cpp:119
std::vector< std::string > getKeys() override
Definition: DynamicObject.cpp:115
Definition: DynamicObject.hpp:46
std::string dump() override
Definition: DynamicObject.cpp:126
std::shared_ptr< api::DynamicObject > putLong(const std::string &key, int64_t value) override
Definition: DynamicObject.cpp:82
Definition: DynamicValue.hpp:48
optional< std::vector< uint8_t > > getData(const std::string &key) override
Definition: DynamicObject.cpp:62
bool contains(const std::string &key) override
Definition: DynamicObject.cpp:107
std::shared_ptr< api::DynamicObject > putData(const std::string &key, const std::vector< uint8_t > &value) override
Definition: DynamicObject.cpp:90
optional< double > getDouble(const std::string &key) override
Definition: DynamicObject.cpp:54
Definition: Account.cpp:8
std::shared_ptr< api::DynamicObject > getObject(const std::string &key) override
Definition: DynamicObject.cpp:66
bool isReadOnly() override
Definition: DynamicObject.cpp:166
std::vector< uint8_t > serialize() override
Definition: DynamicObject.cpp:132
optional< int32_t > getInt(const std::string &key) override
Definition: DynamicObject.cpp:46
Definition: optional.hpp:177
std::shared_ptr< api::DynamicArray > getArray(const std::string &key) override
Definition: DynamicObject.cpp:70