31 #ifndef LEDGER_CORE_DYNAMICARRAY_HPP 32 #define LEDGER_CORE_DYNAMICARRAY_HPP 34 #include "../api/DynamicArray.hpp" 35 #include "../api/DynamicObject.hpp" 36 #include "../api/DynamicType.hpp" 37 #include <cereal/cereal.hpp> 38 #include <cereal/types/vector.hpp> 39 #include "../collections/collections.hpp" 40 #include "DynamicValue.hpp" 49 int64_t
size()
override;
55 auto v = _values.get(index);
73 std::shared_ptr<api::DynamicObject>
getObject(int64_t index)
override;
74 std::shared_ptr<api::DynamicArray>
getArray(int64_t index)
override;
78 std::shared_ptr<DynamicArray>
push(T value) {
83 return shared_from_this();
86 std::shared_ptr<api::DynamicArray>
pushInt(int32_t value)
override;
87 std::shared_ptr<api::DynamicArray>
pushLong(int64_t value)
override;
88 std::shared_ptr<api::DynamicArray>
pushString(
const std::string &value)
override;
89 std::shared_ptr<api::DynamicArray>
pushDouble(
double value)
override;
90 std::shared_ptr<api::DynamicArray>
pushData(
const std::vector<uint8_t> &value)
override;
91 std::shared_ptr<api::DynamicArray>
pushBoolean(
bool value)
override;
92 std::shared_ptr<api::DynamicArray> pushObject(
const std::shared_ptr<api::DynamicObject> &value)
override;
93 std::shared_ptr<api::DynamicArray> pushArray(
const std::shared_ptr<api::DynamicArray> &value)
override;
94 std::shared_ptr<api::DynamicArray> concat(
const std::shared_ptr<api::DynamicArray> &array)
override;
98 void setReadOnly(
bool enable);
101 bool remove(int64_t index)
override;
102 std::string
dump()
override;
103 std::vector<uint8_t>
serialize()
override;
105 std::ostream&
dump(std::ostream& ss,
int depth)
const;
107 template <
class Archive>
109 ar(_values.getContainer());
119 #endif //LEDGER_CORE_DYNAMICARRAY_HPP std::shared_ptr< DynamicArray > push(T value)
A generic and type-safe push.
Definition: DynamicArray.hpp:78
Definition: DynamicArray.hpp:26
std::shared_ptr< api::DynamicObject > getObject(int64_t index) override
Definition: DynamicArray.cpp:72
optional< double > getDouble(int64_t index) override
Definition: DynamicArray.cpp:60
int64_t size() override
Definition: DynamicArray.cpp:44
optional< std::vector< uint8_t > > getData(int64_t index) override
Definition: DynamicArray.cpp:68
bool isReadOnly() override
Definition: DynamicArray.cpp:174
optional< bool > getBoolean(int64_t index) override
Definition: DynamicArray.cpp:64
std::shared_ptr< api::DynamicArray > pushLong(int64_t value) override
Definition: DynamicArray.cpp:84
optional< api::DynamicType > getType(int64_t index) override
Definition: DynamicArray.cpp:112
Definition: DynamicArray.hpp:45
optional< int64_t > getLong(int64_t index) override
Definition: DynamicArray.cpp:56
optional< int32_t > getInt(int64_t index) override
Definition: DynamicArray.cpp:52
std::shared_ptr< api::DynamicArray > getArray(int64_t index) override
Definition: DynamicArray.cpp:76
Definition: DynamicValue.hpp:48
std::shared_ptr< api::DynamicArray > pushData(const std::vector< uint8_t > &value) override
Definition: DynamicArray.cpp:100
optional< std::string > getString(int64_t index) override
Definition: DynamicArray.cpp:48
std::vector< uint8_t > serialize() override
Definition: DynamicArray.cpp:153
std::shared_ptr< api::DynamicArray > pushBoolean(bool value) override
Definition: DynamicArray.cpp:92
Definition: Account.cpp:8
std::shared_ptr< api::DynamicArray > pushDouble(double value) override
Definition: DynamicArray.cpp:88
std::shared_ptr< api::DynamicArray > pushString(const std::string &value) override
Definition: DynamicArray.cpp:96
Definition: optional.hpp:177
std::string dump() override
Definition: DynamicArray.cpp:132
std::shared_ptr< api::DynamicArray > pushInt(int32_t value) override
Definition: DynamicArray.cpp:80
Definition: Sequence.hpp:42