IDS peak genericC++ v1.12.0
Loading...
Searching...
No Matches
peak_common_iarchive.hpp
Go to the documentation of this file.
1
10
11#pragma once
12
14
15#include <memory>
16#include <string>
17#include <vector>
18
19namespace peak
20{
21namespace common
22{
23
45{
46
59{
60public:
81
82 virtual ~IArchive() = default;
83
87 PEAK_COMMON_NO_DISCARD virtual std::shared_ptr<IArchive> CreateArchive() const = 0;
88
94 PEAK_COMMON_NO_DISCARD virtual bool HasKey(const std::string& key) const = 0;
95
101 PEAK_COMMON_NO_DISCARD virtual ValueType GetValueType(const std::string& key) const = 0;
102
107 PEAK_COMMON_NO_DISCARD virtual std::vector<std::string> GetKeys() const = 0;
108
114 PEAK_COMMON_NO_DISCARD virtual size_t GetArrayCount(const std::string& key) const = 0;
115
116 // --------------------- Setters ---------------------
117
119 virtual void SetBool(const std::string& key, bool value) = 0;
120
122 virtual void SetInt(const std::string& key, int64_t value) = 0;
123
125 virtual void SetDouble(const std::string& key, double value) = 0;
126
128 virtual void SetString(const std::string& key, const std::string& value) = 0;
129
131 virtual void SetArchive(const std::string& key, const std::shared_ptr<IArchive>& value) = 0;
132
134 virtual void SetBoolArray(const std::string& key, const std::vector<bool>& value) = 0;
135
137 virtual void SetIntArray(const std::string& key, const std::vector<int64_t>& value) = 0;
138
140 virtual void SetDoubleArray(const std::string& key, const std::vector<double>& value) = 0;
141
143 virtual void SetStringArray(const std::string& key, const std::vector<std::string>& value) = 0;
144
146 virtual void SetArchiveArray(const std::string& key, const std::vector<std::shared_ptr<IArchive>>& value) = 0;
147
148 // --------------------- Getters ---------------------
149
151 PEAK_COMMON_NO_DISCARD virtual bool GetBool(const std::string& key) const = 0;
152
154 PEAK_COMMON_NO_DISCARD virtual int64_t GetInt(const std::string& key) const = 0;
155
157 PEAK_COMMON_NO_DISCARD virtual double GetDouble(const std::string& key) const = 0;
158
160 PEAK_COMMON_NO_DISCARD virtual std::string GetString(const std::string& key) const = 0;
161
163 PEAK_COMMON_NO_DISCARD virtual std::shared_ptr<IArchive> GetArchive(const std::string& key) const = 0;
164
166 PEAK_COMMON_NO_DISCARD virtual std::vector<bool> GetBoolArray(const std::string& key) const = 0;
167
169 PEAK_COMMON_NO_DISCARD virtual std::vector<int64_t> GetIntArray(const std::string& key) const = 0;
170
172 PEAK_COMMON_NO_DISCARD virtual std::vector<double> GetDoubleArray(const std::string& key) const = 0;
173
175 PEAK_COMMON_NO_DISCARD virtual std::vector<std::string> GetStringArray(const std::string& key) const = 0;
176
178 PEAK_COMMON_NO_DISCARD virtual std::vector<std::shared_ptr<IArchive>> GetArchiveArray(const std::string& key) const = 0;
179};
180
181} // namespace serialization
182} // namespace common
183} // namespace peak
Interface for a hierarchical key-value archive system.
Definition peak_common_iarchive.hpp:59
virtual void SetArchive(const std::string &key, const std::shared_ptr< IArchive > &value)=0
Stores a nested archive object.
virtual PEAK_COMMON_NO_DISCARD std::string GetString(const std::string &key) const =0
Retrieves a string value by key.
virtual PEAK_COMMON_NO_DISCARD std::vector< std::shared_ptr< IArchive > > GetArchiveArray(const std::string &key) const =0
Retrieves an array of nested archives by key.
virtual PEAK_COMMON_NO_DISCARD std::shared_ptr< IArchive > CreateArchive() const =0
Creates a new, empty archive instance.
virtual void SetBool(const std::string &key, bool value)=0
Stores a boolean value.
virtual void SetArchiveArray(const std::string &key, const std::vector< std::shared_ptr< IArchive > > &value)=0
Stores an array of nested archives.
virtual PEAK_COMMON_NO_DISCARD size_t GetArrayCount(const std::string &key) const =0
Gets the number of elements in an array stored under the given key.
ValueType
Enumerates supported value types that can be stored or queried in the archive.
Definition peak_common_iarchive.hpp:65
@ Int
64-bit signed integer
Definition peak_common_iarchive.hpp:69
@ String
UTF-8 encoded string.
Definition peak_common_iarchive.hpp:75
@ DoubleArray
Array of doubles.
Definition peak_common_iarchive.hpp:73
@ StringArray
Array of strings.
Definition peak_common_iarchive.hpp:76
@ IntArray
Array of integers.
Definition peak_common_iarchive.hpp:70
@ Bool
Single boolean value.
Definition peak_common_iarchive.hpp:66
@ BoolArray
Array of booleans.
Definition peak_common_iarchive.hpp:67
@ Double
Double-precision floating point.
Definition peak_common_iarchive.hpp:72
@ Archive
Nested archive object.
Definition peak_common_iarchive.hpp:78
@ ArchiveArray
Array of nested archives.
Definition peak_common_iarchive.hpp:79
virtual PEAK_COMMON_NO_DISCARD std::vector< double > GetDoubleArray(const std::string &key) const =0
Retrieves an array of doubles by key.
virtual void SetBoolArray(const std::string &key, const std::vector< bool > &value)=0
Stores an array of boolean values.
virtual PEAK_COMMON_NO_DISCARD std::vector< int64_t > GetIntArray(const std::string &key) const =0
Retrieves an array of integers by key.
virtual void SetInt(const std::string &key, int64_t value)=0
Stores a 64-bit signed integer.
virtual PEAK_COMMON_NO_DISCARD ValueType GetValueType(const std::string &key) const =0
Retrieves the value type associated with a key.
virtual PEAK_COMMON_NO_DISCARD bool HasKey(const std::string &key) const =0
Checks whether a given key exists in the archive.
virtual PEAK_COMMON_NO_DISCARD bool GetBool(const std::string &key) const =0
Retrieves a boolean value by key.
virtual PEAK_COMMON_NO_DISCARD std::shared_ptr< IArchive > GetArchive(const std::string &key) const =0
Retrieves a nested archive by key.
virtual PEAK_COMMON_NO_DISCARD std::vector< bool > GetBoolArray(const std::string &key) const =0
Retrieves an array of booleans by key.
virtual PEAK_COMMON_NO_DISCARD double GetDouble(const std::string &key) const =0
Retrieves a double-precision number by key.
virtual void SetIntArray(const std::string &key, const std::vector< int64_t > &value)=0
Stores an array of 64-bit integers.
virtual void SetDoubleArray(const std::string &key, const std::vector< double > &value)=0
Stores an array of doubles.
virtual void SetDouble(const std::string &key, double value)=0
Stores a double-precision floating point number.
virtual PEAK_COMMON_NO_DISCARD int64_t GetInt(const std::string &key) const =0
Retrieves a 64-bit signed integer by key.
virtual PEAK_COMMON_NO_DISCARD std::vector< std::string > GetStringArray(const std::string &key) const =0
Retrieves an array of strings by key.
virtual PEAK_COMMON_NO_DISCARD std::vector< std::string > GetKeys() const =0
Returns a list of all keys currently stored in the archive.
virtual void SetStringArray(const std::string &key, const std::vector< std::string > &value)=0
Stores an array of strings.
virtual void SetString(const std::string &key, const std::string &value)=0
Stores a UTF-8 string.
#define PEAK_COMMON_NO_DISCARD
Compatability macro for the nodiscard attribute.
Definition peak_common_defines.hpp:91
Interfaces for defining serialization and deserialization behavior.
Definition peak_common_iarchive.hpp:45
Root namespace for common types and interfaces shared across multiple libraries.
Definition peak_common_math.hpp:22
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition peak_dynamic_loader.h:33