|
LSSTApplications
1.1.2+25,10.0+13,10.0+132,10.0+133,10.0+224,10.0+41,10.0+8,10.0-1-g0f53050+14,10.0-1-g4b7b172+19,10.0-1-g61a5bae+98,10.0-1-g7408a83+3,10.0-1-gc1e0f5a+19,10.0-1-gdb4482e+14,10.0-11-g3947115+2,10.0-12-g8719d8b+2,10.0-15-ga3f480f+1,10.0-2-g4f67435,10.0-2-gcb4bc6c+26,10.0-28-gf7f57a9+1,10.0-3-g1bbe32c+14,10.0-3-g5b46d21,10.0-4-g027f45f+5,10.0-4-g86f66b5+2,10.0-4-gc4fccf3+24,10.0-40-g4349866+2,10.0-5-g766159b,10.0-5-gca2295e+25,10.0-6-g462a451+1
LSSTDataManagementBasePackage
|
Class for storing generic metadata. More...
#include <PropertySet.h>
Public Types | |
| typedef boost::shared_ptr < PropertySet > | Ptr |
| typedef boost::shared_ptr < PropertySet const > | ConstPtr |
Public Types inherited from lsst.daf.base::Persistable | |
| typedef boost::shared_ptr < Persistable > | Ptr |
Public Types inherited from lsst.daf.base::Citizen | |
| enum | { magicSentinel = 0xdeadbeef } |
| typedef unsigned long | memId |
| Type of the block's ID. More... | |
| typedef memId(* | memNewCallback )(const memId cid) |
| A function used to register a callback. More... | |
| typedef memId(* | memCallback )(const Citizen *ptr) |
Public Member Functions | |
| PropertySet (bool flat=false) | |
| virtual | ~PropertySet (void) |
| virtual Ptr | deepCopy (void) const |
| size_t | nameCount (bool topLevelOnly=true) const |
| std::vector< std::string > | names (bool topLevelOnly=true) const |
| std::vector< std::string > | paramNames (bool topLevelOnly=true) const |
| std::vector< std::string > | propertySetNames (bool topLevelOnly=true) const |
| bool | exists (std::string const &name) const |
| bool | isArray (std::string const &name) const |
| bool | isPropertySetPtr (std::string const &name) const |
| size_t | valueCount (std::string const &name) const |
| std::type_info const & | typeOf (std::string const &name) const |
| template<typename T > | |
| T | get (std::string const &name) const |
| template<typename T > | |
| T | get (std::string const &name, T const &defaultValue) const |
| template<typename T > | |
| std::vector< T > | getArray (std::string const &name) const |
| bool | getAsBool (std::string const &name) const |
| int | getAsInt (std::string const &name) const |
| int64_t | getAsInt64 (std::string const &name) const |
| double | getAsDouble (std::string const &name) const |
| std::string | getAsString (std::string const &name) const |
| PropertySet::Ptr | getAsPropertySetPtr (std::string const &name) const |
| Persistable::Ptr | getAsPersistablePtr (std::string const &name) const |
| virtual std::string | toString (bool topLevelOnly=false, std::string const &indent="") const |
| template<typename T > | |
| void | set (std::string const &name, T const &value) |
| template<typename T > | |
| void | set (std::string const &name, std::vector< T > const &value) |
| void | set (std::string const &name, char const *value) |
| template<typename T > | |
| void | add (std::string const &name, T const &value) |
| template<typename T > | |
| void | add (std::string const &name, std::vector< T > const &value) |
| void | add (std::string const &name, char const *value) |
| virtual void | copy (std::string const &dest, ConstPtr source, std::string const &name) |
| virtual void | combine (ConstPtr source) |
| virtual void | remove (std::string const &name) |
| template<typename T > | |
| vector< T > | getArray (string const &name) const |
Public Member Functions inherited from lsst.daf.base::Persistable | |
| Persistable (void) | |
| virtual | ~Persistable (void) |
| template<class Archive > | |
| void | serialize (Archive &, unsigned int const) |
Public Member Functions inherited from lsst.daf.base::Citizen | |
| Citizen (const std::type_info &) | |
| Citizen (Citizen const &) | |
| ~Citizen () | |
| Citizen & | operator= (Citizen const &) |
| std::string | repr () const |
| Return a string representation of a Citizen. More... | |
| void | markPersistent (void) |
| Mark a Citizen as persistent and not destroyed until process end. More... | |
| memId | getId () const |
| Return the Citizen's ID. More... | |
Protected Member Functions | |
| virtual void | _set (std::string const &name, boost::shared_ptr< std::vector< boost::any > > vp) |
| virtual void | _add (std::string const &name, boost::shared_ptr< std::vector< boost::any > > vp) |
| virtual std::string | _format (std::string const &name) const |
Private Types | |
| typedef std::tr1::unordered_map < std::string, boost::shared_ptr< std::vector < boost::any > > > | AnyMap |
Private Member Functions | |
| AnyMap::iterator | _find (std::string const &name) |
| AnyMap::const_iterator | _find (std::string const &name) const |
| virtual void | _findOrInsert (std::string const &name, boost::shared_ptr< std::vector< boost::any > > vp) |
| void | _cycleCheckPtrVec (std::vector< Ptr > const &v, std::string const &name) |
| void | _cycleCheckAnyVec (std::vector< boost::any > const &v, std::string const &name) |
| void | _cycleCheckPtr (Ptr const &v, std::string const &name) |
Private Attributes | |
| AnyMap | _map |
| bool | _flat |
Additional Inherited Members | |
Static Public Member Functions inherited from lsst.daf.base::Citizen | |
| static bool | hasBeenCorrupted () |
| Check all allocated blocks for corruption. More... | |
| static memId | getNextMemId () |
| Return the memId of the next object to be allocated. More... | |
| static int | init () |
| Called once when the memory system is being initialised. More... | |
| static int | census (int, memId startingMemId=0) |
| How many active Citizens are there? More... | |
| static void | census (std::ostream &stream, memId startingMemId=0) |
| Print a list of all active Citizens to stream, sorted by ID. More... | |
| static const std::vector < const Citizen * > * | census () |
| Return a (newly allocated) std::vector of active Citizens sorted by ID. More... | |
| static memId | setNewCallbackId (memId id) |
| Call the NewCallback when block is allocated. More... | |
| static memId | setDeleteCallbackId (memId id) |
| Call the current DeleteCallback when block is deleted. More... | |
| static memNewCallback | setNewCallback (memNewCallback func) |
| Set the NewCallback function. More... | |
| static memCallback | setDeleteCallback (memCallback func) |
| Set the DeleteCallback function. More... | |
| static memCallback | setCorruptionCallback (memCallback func) |
| Set the CorruptionCallback function. More... | |
Class for storing generic metadata.
This class stores key/value pairs, like a Python dictionary but in C++. Keys are always C++ strings. Values can be C++ primitive data types, strings, lsst::daf::base::DateTime objects, and lsst::daf::base::Persistable subclasses (although the latter is currently discouraged). Values can also be vectors of these items.
PropertySets are hierarchical; values within a PropertySet that is contained within another PropertySet can be addressed using dotted paths ("a.b.c"). If "flat=true" is specified to the constructor, the PropertySet still takes dotted paths but is not actually hierarchical in structure. This is used to support PropertyList.
Definition at line 82 of file PropertySet.h.
|
private |
Definition at line 167 of file PropertySet.h.
| typedef boost::shared_ptr<PropertySet const> lsst.daf.base::PropertySet::ConstPtr |
Definition at line 91 of file PropertySet.h.
| typedef boost::shared_ptr<PropertySet> lsst.daf.base::PropertySet::Ptr |
Definition at line 90 of file PropertySet.h.
|
explicit |
Constructor.
| [in] | flat | false (default) = flatten hierarchy by ignoring dots in names |
Definition at line 55 of file PropertySet.cc.
|
virtual |
|
protectedvirtual |
Finds the property name (possibly hierarchical) and appends or sets its value with the given vector of values.
| [in] | name | Property name to find, possibly hierarchical. |
| [in] | vp | shared_ptr to vector of values. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 848 of file PropertySet.cc.
|
private |
Definition at line 929 of file PropertySet.cc.
|
private |
Definition at line 936 of file PropertySet.cc.
|
private |
Definition at line 922 of file PropertySet.cc.
|
private |
Finds the property name (possibly hierarchical).
| [in] | name | Property name to find, possibly hierarchical. |
Definition at line 781 of file PropertySet.cc.
|
private |
Finds the property name (possibly hierarchical). Const version.
| [in] | name | Property name to find, possibly hierarchical. |
Definition at line 808 of file PropertySet.cc.
|
privatevirtual |
Finds the property name (possibly hierarchical) and sets or replaces its value with the given vector of values.
| [in] | name | Property name to find, possibly hierarchical. |
| [in] | vp | shared_ptr to vector of values. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 874 of file PropertySet.cc.
|
protectedvirtual |
Definition at line 507 of file PropertySet.cc.
|
protectedvirtual |
Finds the property name (possibly hierarchical) and sets or replaces its value with the given vector of values. Hook for subclass overrides of top-level setting.
| [in] | name | Property name to find, possibly hierarchical. |
| [in] | vp | shared_ptr to vector of values. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Reimplemented in lsst.daf.base::PropertyList.
Definition at line 837 of file PropertySet.cc.
| void lsst.daf.base::PropertySet::add | ( | std::string const & | name, |
| T const & | value | ||
| ) |
Appends a single value to the vector of values for a property name (possibly hierarchical). Sets the value if the property does not exist.
| [in] | name | Property name to append to, possibly hierarchical. |
| [in] | value | Value to append. |
| TypeError | Type does not match existing values. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 619 of file PropertySet.cc.
| void lsst.daf.base::PropertySet::add | ( | std::string const & | name, |
| std::vector< T > const & | value | ||
| ) |
Appends a vector of values to the vector of values for a property name (possibly hierarchical). Sets the values if the property does not exist.
| [in] | name | Property name to append to, possibly hierarchical. |
| [in] | value | Vector of values to append. |
| TypeError | Type does not match existing values. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 660 of file PropertySet.cc.
| void lsst.daf.base::PropertySet::add | ( | std::string const & | name, |
| char const * | value | ||
| ) |
Appends a char const* value to the vector of values for a property name (possibly hierarchical). Sets the value if the property does not exist.
| [in] | name | Property name to append to, possibly hierarchical. |
| [in] | value | Character string value to append. |
| TypeError | Type does not match existing values. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 700 of file PropertySet.cc.
|
virtual |
Appends all value vectors from the source to their corresponding properties. Sets values if a property does not exist.
| [in] | source | PropertySet::Ptr for the source PropertySet. |
| TypeError | Type does not match existing values. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Reimplemented in lsst.daf.base::PropertyList.
Definition at line 738 of file PropertySet.cc.
|
virtual |
Replaces a single value vector in the destination with one from the source.
| [in] | dest | Destination property name. |
| [in] | source | PropertySet::Ptr for the source PropertySet. |
| [in] | name | Property name to extract. |
| TypeError | Type does not match existing values. |
| InvalidParameterError | Name does not exist in source. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Reimplemented in lsst.daf.base::PropertyList.
Definition at line 713 of file PropertySet.cc.
|
virtual |
Copy the PropertySet and all of its contents.
Reimplemented in lsst.daf.base::PropertyList.
Definition at line 70 of file PropertySet.cc.
| bool lsst.daf.base::PropertySet::exists | ( | std::string const & | name | ) | const |
Determine if a name (possibly hierarchical) exists.
| [in] | name | Property name to examine, possibly hierarchical. |
Definition at line 190 of file PropertySet.cc.
| T lsst.daf.base::PropertySet::get | ( | std::string const & | name | ) | const |
Get the last value for a property name (possibly hierarchical). Note that the type must be explicitly specified for this template:
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
| TypeError | Value does not match desired type. |
Definition at line 246 of file PropertySet.cc.
| T lsst.daf.base::PropertySet::get | ( | std::string const & | name, |
| T const & | defaultValue | ||
| ) | const |
Get the last value for a property name (possibly hierarchical). Returns the provided defaultValue if the property does not exist. Note that the type must be explicitly specified for this template:
| [in] | name | Property name to examine, possibly hierarchical. |
| [in] | defaultValue | Default value to return if property does not exist. |
| TypeError | Value does not match desired type. |
Definition at line 271 of file PropertySet.cc.
| std::vector<T> lsst.daf.base::PropertySet::getArray | ( | std::string const & | name | ) | const |
| vector<T> lsst.daf.base::PropertySet::getArray | ( | string const & | name | ) | const |
Get the vector of values for a property name (possibly hierarchical). Note that the type must be explicitly specified for this template:
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
| TypeError | Value does not match desired type. |
Definition at line 295 of file PropertySet.cc.
| bool lsst.daf.base::PropertySet::getAsBool | ( | std::string const & | name | ) | const |
Get the last value for a bool property name (possibly hierarchical).
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
| TypeError | Value is not a bool. |
Definition at line 321 of file PropertySet.cc.
| double lsst.daf.base::PropertySet::getAsDouble | ( | std::string const & | name | ) | const |
Get the last value for any arithmetic property name (possibly hierarchical).
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
| TypeError | Value cannot be converted to double. |
Definition at line 406 of file PropertySet.cc.
| int lsst.daf.base::PropertySet::getAsInt | ( | std::string const & | name | ) | const |
Get the last value for a bool/char/short/int property name (possibly hierarchical). Unsigned int properties are not acceptable, but unsigned versions of smaller types are.
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
| TypeError | Value cannot be converted to int. |
Definition at line 333 of file PropertySet.cc.
| int64_t lsst.daf.base::PropertySet::getAsInt64 | ( | std::string const & | name | ) | const |
Get the last value for a bool/char/short/int/int64_t property name (possibly hierarchical). Unsigned int64_t properties are not acceptable, but unsigned versions of smaller types are, except possibly unsigned long, depending on compiler.
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
| TypeError | Value cannot be converted to int64_t. |
Definition at line 372 of file PropertySet.cc.
| dafBase::Persistable::Ptr lsst.daf.base::PropertySet::getAsPersistablePtr | ( | std::string const & | name | ) | const |
Get the last value for a Persistable name (possibly hierarchical).
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
| TypeError | Value is not a Persistable::Ptr. |
Definition at line 466 of file PropertySet.cc.
| dafBase::PropertySet::Ptr lsst.daf.base::PropertySet::getAsPropertySetPtr | ( | std::string const & | name | ) | const |
Get the last value for a subproperty name (possibly hierarchical).
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
| TypeError | Value is not a PropertySet::Ptr. |
Definition at line 455 of file PropertySet.cc.
| std::string lsst.daf.base::PropertySet::getAsString | ( | std::string const & | name | ) | const |
Get the last value for a string property name (possibly hierarchical). Note that properties set with char const* can be retrieved as strings using this method.
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
| TypeError | Value is not a string. |
Definition at line 444 of file PropertySet.cc.
| bool lsst.daf.base::PropertySet::isArray | ( | std::string const & | name | ) | const |
Determine if a name (possibly hierarchical) has multiple values.
| [in] | name | Property name to examine, possibly hierarchical. |
Definition at line 198 of file PropertySet.cc.
| bool lsst.daf.base::PropertySet::isPropertySetPtr | ( | std::string const & | name | ) | const |
Determine if a name (possibly hierarchical) is a subproperty.
| [in] | name | Property name to examine, possibly hierarchical. |
Definition at line 207 of file PropertySet.cc.
| size_t lsst.daf.base::PropertySet::nameCount | ( | bool | topLevelOnly = true | ) | const |
Get the number of names in the PropertySet, optionally including those in subproperties. The name of the subproperty is counted in that case.
| [in] | topLevelOnly | true (default) = don't include subproperties. |
Definition at line 97 of file PropertySet.cc.
| vector< string > lsst.daf.base::PropertySet::names | ( | bool | topLevelOnly = true | ) | const |
Get the names in the PropertySet, optionally including those in subproperties. The name of the subproperty is included in that case. Hierarchical subproperty names are separated by a period.
| [in] | topLevelOnly | true (default) = don't include subproperties. |
Definition at line 117 of file PropertySet.cc.
| vector< string > lsst.daf.base::PropertySet::paramNames | ( | bool | topLevelOnly = true | ) | const |
Get the names of parameters (non-subproperties) in the PropertySet, optionally including those in subproperties. Hierarchical subproperty names are separated by a period.
| [in] | topLevelOnly | true (default) = don't include subproperties. |
Definition at line 142 of file PropertySet.cc.
| vector< string > lsst.daf.base::PropertySet::propertySetNames | ( | bool | topLevelOnly = true | ) | const |
Get the names of subproperties in the PropertySet, optionally including those in subproperties. Hierarchical subproperty names are separated by a period.
| [in] | topLevelOnly | true (default) = don't include subproperties. |
Definition at line 168 of file PropertySet.cc.
|
virtual |
Removes all values for a property name (possibly hierarchical). Does nothing if the property does not exist.
| [in] | name | Property name to remove, possibly hierarchical. |
Reimplemented in lsst.daf.base::PropertyList.
Definition at line 754 of file PropertySet.cc.
| void lsst.daf.base::PropertySet::set | ( | std::string const & | name, |
| T const & | value | ||
| ) |
Replace all values for a property name (possibly hierarchical) with a new value.
| [in] | name | Property name to set, possibly hierarchical. |
| [in] | value | Value to set. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 581 of file PropertySet.cc.
| void lsst.daf.base::PropertySet::set | ( | std::string const & | name, |
| std::vector< T > const & | value | ||
| ) |
Replace all values for a property name (possibly hierarchical) with a vector of new values.
| [in] | name | Property name to set, possibly hierarchical. |
| [in] | value | Vector of values to set. |
| InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 594 of file PropertySet.cc.
| void lsst.daf.base::PropertySet::set | ( | std::string const & | name, |
| char const * | value | ||
| ) |
Replace all values for a property name (possibly hierarchical) with a string value.
| [in] | name | Property name to set, possibly hierarchical. |
| [in] | value | Character string (converted to std::string ). |
Definition at line 607 of file PropertySet.cc.
|
virtual |
Generate a string representation of the PropertySet. Use this for debugging, not for serialization/persistence.
| [in] | topLevelOnly | false (default) = do include subproperties. |
| [in] | indent | String to indent lines by (default none). |
Reimplemented in lsst.daf.base::PropertyList.
Definition at line 476 of file PropertySet.cc.
| type_info const & lsst.daf.base::PropertySet::typeOf | ( | std::string const & | name | ) | const |
Get the type of values for a property name (possibly hierarchical).
| [in] | name | Property name to examine, possibly hierarchical. |
| NotFoundError | Property does not exist. |
Definition at line 227 of file PropertySet.cc.
| size_t lsst.daf.base::PropertySet::valueCount | ( | std::string const & | name | ) | const |
Get number of values for a property name (possibly hierarchical).
| [in] | name | Property name to examine, possibly hierarchical. |
Definition at line 216 of file PropertySet.cc.
|
private |
Definition at line 179 of file PropertySet.h.
|
private |
Definition at line 178 of file PropertySet.h.
1.8.5