25 #ifndef LSST_DAF_BASE_PROPERTYSET 26 #define LSST_DAF_BASE_PROPERTYSET 58 #include <unordered_map> 61 #include "boost/any.hpp" 70 namespace persistence {
71 class PropertySetFormatter;
78 #pragma warning (push) 79 #pragma warning (disable: 444) 102 virtual Ptr deepCopy(
void)
const;
105 size_t nameCount(
bool topLevelOnly =
true)
const;
112 bool isPropertySetPtr(
std::string const& name)
const;
120 template <
typename T> T
get(
std::string const& name)
const;
123 template <
typename T>
124 T
get(
std::string const& name, T
const& defaultValue)
const;
126 template <
typename T>
139 virtual std::string toString(
bool topLevelOnly =
false,
143 template <
typename T>
void set(
std::string const& name, T
const& value);
144 template <
typename T>
void set(
std::string const& name,
146 void set(
std::string const& name,
char const* value);
147 template <
typename T>
void add(
std::string const& name, T
const& value);
148 template <
typename T>
void add(
std::string const& name,
150 void add(
std::string const& name,
char const* value);
152 virtual void copy(
std::string const& dest, ConstPtr source,
154 virtual void combine(ConstPtr source);
173 AnyMap::iterator _find(std::string
const& name);
174 AnyMap::const_iterator _find(std::string
const& name)
const;
175 virtual void _findOrInsert(std::string
const& name,
179 std::string
const& name);
180 void _cycleCheckPtr(Ptr
const& v, std::string
const& name);
187 #pragma warning (pop) 190 template<>
void PropertySet::add<PropertySet::Ptr>(
192 template<>
void PropertySet::add<PropertySet::Ptr>(
std::shared_ptr< PropertySet > Ptr
std::shared_ptr< PropertySet const > ConstPtr
Interface for Persistable base class.
Class for storing generic metadata.
#define LSST_PERSIST_FORMATTER(formatter...)
Macro used to connect the persistable class with the Formatter and boost::serialization.
Base class for all persistable classes.
Citizen is a class that should be among all LSST classes base classes, and handles basic memory manag...