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);
162 template <typename T>
163 void set(
std::
string const& name,
std::vector<T> const& value);
166 void set(
std::
string const& name,
char const* value);
169 template <typename T>
170 void add(
std::
string const& name, T const& value);
173 template <typename T>
174 void add(
std::
string const& name,
std::vector<T> const& value);
177 void add(
std::
string const& name,
char const* value);
187 template <typename T>
188 void set(
std::
string const& name, T const& value,
std::
string const& comment);
198 template <typename T>
199 void set(
std::
string const& name,
std::vector<T> const& value,
std::
string const& comment);
209 void set(
std::
string const& name,
char const* value,
std::
string const& comment);
219 template <typename T>
220 void add(
std::
string const& name, T const& value,
std::
string const& comment);
230 template <typename T>
231 void add(
std::
string const& name,
std::vector<T> const& value,
std::
string const& comment);
241 void add(
std::
string const& name,
char const* value,
std::
string const& comment);
244 template <typename T>
245 void set(
std::
string const& name, T const& value,
char const* comment) {
250 template <
typename T>
261 template <
typename T>
266 template <
typename T>
278 bool asScalar =
false);
294 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.