25#ifndef LSST_DAF_BASE_PROPERTYLIST
26#define LSST_DAF_BASE_PROPERTYLIST
51#include <unordered_map>
54#include "boost/any.hpp"
65#pragma warning(disable : 444)
101 template <typename T>
102 T get(
std::
string const& name) const;
117 template <typename T>
118 T get(
std::
string const& name, T const& defaultValue) const;
121 template <typename T>
122 std::vector<T> getArray(
std::
string const& name) const;
131 std::
string const& getComment(
std::
string const& name) const;
134 std::vector<
std::
string> getOrderedNames() const;
137 std::list<
std::
string>::const_iterator begin() const;
140 std::list<
std::
string>::const_iterator end() const;
143 virtual
std::
string toString(
bool topLevelOnly = false,
std::
string const& indent = "") const;
148 template <typename T>
149 void set(
std::
string const& name, T const& value);
166 template <typename T>
167 void set(
std::
string const& name,
std::vector<T> const& value);
170 void set(
std::
string const& name,
char const* value);
173 template <typename T>
174 void add(
std::
string const& name, T const& value);
177 template <typename T>
178 void add(
std::
string const& name,
std::vector<T> const& value);
181 void add(
std::
string const& name,
char const* value);
191 template <typename T>
192 void set(
std::
string const& name, T const& value,
std::
string const& comment);
202 template <typename T>
203 void set(
std::
string const& name,
std::vector<T> const& value,
std::
string const& comment);
213 void set(
std::
string const& name,
char const* value,
std::
string const& comment);
223 template <typename T>
224 void add(
std::
string const& name, T const& value,
std::
string const& comment);
234 template <typename T>
235 void add(
std::
string const& name,
std::vector<T> const& value,
std::
string const& comment);
245 void add(
std::
string const& name,
char const* value,
std::
string const& comment);
248 template <typename T>
249 void set(
std::
string const& name, T const& value,
char const* comment) {
254 template <
typename T>
265 template <
typename T>
270 template <
typename T>
283 bool asScalar =
false);
284 [[deprecated(
"Replaced by a non-shared_ptr overload. Will be removed after v25.")]]
292 [[deprecated(
"Replaced by a non-shared_ptr overload. Will be removed after v25.")]]
307 CommentMap _comments;
Class for storing ordered metadata with comments.
void set(std::string const &name, std::vector< T > const &value, char const *comment)
Version of set vector value that accepts a comment.
std::shared_ptr< PropertyList > Ptr
void add(std::string const &name, T const &value, char const *comment)
Version of add scalar value that accepts a comment.
void add(std::string const &name, std::vector< T > const &value, char const *comment)
Version of add vector value that accepts a comment.
std::shared_ptr< PropertyList const > ConstPtr
void add(std::string const &name, char const *value, char const *comment)
Version of add char* value that accepts a comment.
virtual ~PropertyList() noexcept
Destructor.
void set(std::string const &name, char const *value, char const *comment)
Version of set char* value that accepts a comment.
Class for storing generic metadata.