25 #ifndef LSST_DAF_BASE_PROPERTYSET 26 #define LSST_DAF_BASE_PROPERTYSET 49 #include <unordered_map> 52 #include "boost/any.hpp" 61 namespace persistence {
62 class PropertySetFormatter;
69 #pragma warning (push) 70 #pragma warning (disable: 444) 104 virtual Ptr deepCopy(
void)
const;
112 size_t nameCount(
bool topLevelOnly =
true)
const;
155 bool isPropertySetPtr(
std::string const& name)
const;
189 template <
typename T> T
get(
std::string const& name)
const;
203 template <
typename T>
204 T
get(
std::string const& name, T
const& defaultValue)
const;
217 template <
typename T>
311 virtual std::string toString(
bool topLevelOnly =
false,
324 template <
typename T>
void set(
std::string const& name, T
const& value);
334 template <
typename T>
void set(
std::string const& name,
344 void set(
std::string const& name,
char const* value);
355 template <
typename T>
void add(
std::string const& name, T
const& value);
368 template <
typename T>
void add(
std::string const& name,
381 void add(
std::string const& name,
char const* value);
397 bool asScalar =
false);
412 virtual void combine(ConstPtr source);
461 AnyMap::iterator _find(std::string
const& name);
469 AnyMap::const_iterator _find(std::string
const& name)
const;
479 virtual void _findOrInsert(std::string
const& name,
483 std::string
const& name);
484 void _cycleCheckPtr(Ptr
const& v, std::string
const& name);
491 #pragma warning (pop) 494 template<>
void PropertySet::add<PropertySet::Ptr>(
496 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...