LSST Applications 24.1.6,g063fba187b+56b85ce14a,g0f08755f38+df8a265115,g12f32b3c4e+891a09f10d,g1524ad2192+7a5d7b3fbd,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g28da252d5a+07cb1400be,g2bbee38e9b+ae03bbfc84,g2bc492864f+ae03bbfc84,g3156d2b45e+6e55a43351,g347aa1857d+ae03bbfc84,g35bb328faa+a8ce1bb630,g3a166c0a6a+ae03bbfc84,g3e281a1b8c+c5dd892a6c,g414038480c+6b9177ef31,g41af890bb2+8f257c4c0b,g781aacb6e4+a8ce1bb630,g7af13505b9+7137b3b17d,g80478fca09+6df6903293,g82479be7b0+091ce1d07f,g858d7b2824+df8a265115,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,g9726552aa6+414189b318,ga5288a1d22+4a2bca08d7,gacef1a1666+c9a8ff65f4,gb58c049af0+d64f4d3760,gbcfae0f0a0+de1d42d831,gc28159a63d+ae03bbfc84,gcf0d15dbbd+72117bf34e,gda6a2b7d83+72117bf34e,gdaeeff99f8+1711a396fd,ge500cccec5+c8c9c9af63,ge79ae78c31+ae03bbfc84,gf0baf85859+c1f95f4921,gfa517265be+df8a265115,gfa999e8aa5+17cd334064,gfb92a5be7c+df8a265115
LSST Data Management Base Package
|
Class for storing ordered metadata with comments. More...
#include <PropertyList.h>
Public Types | |
typedef std::shared_ptr< PropertyList > | Ptr |
typedef std::shared_ptr< PropertyList const > | ConstPtr |
Public Member Functions | |
PropertyList () | |
Construct an empty PropertyList. | |
virtual | ~PropertyList () noexcept |
Destructor. | |
virtual std::shared_ptr< PropertySet > | deepCopy () const |
Make a deep copy of the PropertyList and all of its contents. | |
template<typename T > | |
T | get (std::string const &name) const |
Get the last value for a property name (possibly hierarchical). | |
template<typename T > | |
T | get (std::string const &name, T const &defaultValue) const |
Get the last value for a property name (possibly hierarchical); return the provided defaultValue if the property does not exist. | |
template<typename T > | |
std::vector< T > | getArray (std::string const &name) const |
Get the vector of values for a property name (possibly hierarchical). | |
std::string const & | getComment (std::string const &name) const |
Get the comment for a string property name (possibly hierarchical). | |
std::vector< std::string > | getOrderedNames () const |
Get the list of property names, in the order they were added. | |
std::list< std::string >::const_iterator | begin () const |
Begin iterator over the list of property names, in the order they were added. | |
std::list< std::string >::const_iterator | end () const |
End iterator over the list of property names, in the order they were added. | |
virtual std::string | toString (bool topLevelOnly=false, std::string const &indent="") const |
Generate a string representation of the PropertySet. | |
template<typename T > | |
void | set (std::string const &name, T const &value) |
Replace all values for a property name (possibly hierarchical) with a new scalar value. | |
void | set (std::string const &name, std::shared_ptr< PropertySet > const &value) |
Replace all values for a property name (possibly hierarchical) with a new PropertySet. | |
template<typename T > | |
void | 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. | |
void | set (std::string const &name, char const *value) |
Replace all values for a property name (possibly hierarchical) with a string value. | |
template<typename T > | |
void | add (std::string const &name, T const &value) |
Append a single value to the vector of values for a property name (possibly hierarchical). | |
template<typename T > | |
void | add (std::string const &name, std::vector< T > const &value) |
Append a vector of values to the vector of values for a property name (possibly hierarchical). | |
void | add (std::string const &name, char const *value) |
Append a char const* value to the vector of values for a property name (possibly hierarchical). | |
template<typename T > | |
void | set (std::string const &name, T const &value, std::string const &comment) |
Version of set scalar value that accepts a comment. | |
template<typename T > | |
void | set (std::string const &name, std::vector< T > const &value, std::string const &comment) |
Version of set vector value that accepts a comment. | |
void | set (std::string const &name, char const *value, std::string const &comment) |
Version of set char* value that accepts a comment. | |
template<typename T > | |
void | add (std::string const &name, T const &value, std::string const &comment) |
Version of add scalar value that accepts a comment. | |
template<typename T > | |
void | add (std::string const &name, std::vector< T > const &value, std::string const &comment) |
Version of add vector value that accepts a comment. | |
void | add (std::string const &name, char const *value, std::string const &comment) |
Version of add char* value that accepts a comment. | |
template<typename T > | |
void | set (std::string const &name, T const &value, char const *comment) |
Version of set scalar value that accepts a comment. | |
template<typename T > | |
void | set (std::string const &name, std::vector< T > const &value, char const *comment) |
Version of set vector value that accepts a comment. | |
void | set (std::string const &name, char const *value, char const *comment) |
Version of set char* value that accepts a comment. | |
template<typename T > | |
void | add (std::string const &name, T const &value, char const *comment) |
Version of add scalar value that accepts a comment. | |
template<typename T > | |
void | add (std::string const &name, std::vector< T > const &value, char const *comment) |
Version of add vector value that accepts a comment. | |
void | add (std::string const &name, char const *value, char const *comment) |
Version of add char* value that accepts a comment. | |
virtual void | copy (std::string const &dest, PropertySet const &source, std::string const &name, bool asScalar=false) |
Replace a single value vector in the destination with one from the source. | |
virtual void | combine (PropertySet const &source) |
Append all value vectors from the source to their corresponding properties. | |
virtual void | remove (std::string const &name) |
Remove all values for a property name (possibly hierarchical). | |
size_t | nameCount (bool topLevelOnly=true) const |
Get the number of names in the PropertySet, optionally including those in subproperties. | |
std::vector< std::string > | names (bool topLevelOnly=true) const |
Get the names in the PropertySet, optionally including those in subproperties. | |
std::vector< std::string > | paramNames (bool topLevelOnly=true) const |
A variant of names that excludes the names of subproperties. | |
std::vector< std::string > | propertySetNames (bool topLevelOnly=true) const |
A variant of names that only returns the names of subproperties. | |
bool | exists (std::string const &name) const |
Determine if a name (possibly hierarchical) exists. | |
bool | isArray (std::string const &name) const |
Determine if a name (possibly hierarchical) has multiple values. | |
bool | isPropertySetPtr (std::string const &name) const |
Determine if a name (possibly hierarchical) is a subproperty. | |
bool | isUndefined (std::string const &name) const |
Determine if a name (possibly hierarchical) has a defined value. | |
size_t | valueCount () const |
Get the number of values in the entire PropertySet, counting each element of a vector. | |
size_t | valueCount (std::string const &name) const |
Get the number of values for a property name (possibly hierarchical). | |
std::type_info const & | typeOf (std::string const &name) const |
Get the type of values for a property name (possibly hierarchical). | |
bool | getAsBool (std::string const &name) const |
Get the last value for a bool property name (possibly hierarchical). | |
int | getAsInt (std::string const &name) const |
Get the last value for a bool/char/short/int property name (possibly hierarchical). | |
int64_t | getAsInt64 (std::string const &name) const |
Get the last value for a bool/char/short/int/int64_t property name (possibly hierarchical). | |
uint64_t | getAsUInt64 (std::string const &name) const |
Get the last value for an bool/char/short/int/int64_t property name (possibly hierarchical). | |
double | getAsDouble (std::string const &name) const |
Get the last value for any arithmetic property name (possibly hierarchical). | |
std::string | getAsString (std::string const &name) const |
Get the last value for a string property name (possibly hierarchical). | |
std::shared_ptr< PropertySet > | getAsPropertySetPtr (std::string const &name) const |
Get the last value for a subproperty name (possibly hierarchical). | |
Persistable::Ptr | getAsPersistablePtr (std::string const &name) const |
Get the last value for a Persistable name (possibly hierarchical). | |
Static Public Member Functions | |
template<typename T > | |
static std::type_info const & | typeOfT () |
Get type info for the specified class. | |
Protected Member Functions | |
virtual void | _add (std::string const &name, std::shared_ptr< std::vector< std::any > > vp) |
virtual std::string | _format (std::string const &name) const |
Private Member Functions | |
virtual void | _set (std::string const &name, std::shared_ptr< std::vector< std::any > > vp) |
virtual void | _moveToEnd (std::string const &name) |
virtual void | _commentOrderFix (std::string const &name, std::string const &comment) |
Class for storing ordered metadata with comments.
This class stores key/value pairs like PropertySet, of which it is a subclass. The difference is that the PropertyList maintains the order of the key/value pairs according to how they were inserted. By default, replacing the value of an existing key does not change its ordering. In addition, a comment string may be associated with each key/value pair.
The main motivating use case for PropertyList is FITS headers.
PropertyLists are not truly hierarchical, although they accept dotted paths as keys. If a PropertySet or PropertyList is added as a value to a PropertyList, the hierarchical pathnames are flattened into the resulting PropertyList.
Definition at line 68 of file PropertyList.h.
typedef std::shared_ptr<PropertyList const> lsst::daf::base::PropertyList::ConstPtr |
Definition at line 72 of file PropertyList.h.
Definition at line 71 of file PropertyList.h.
lsst::daf::base::PropertyList::PropertyList | ( | ) |
Construct an empty PropertyList.
Constructor.
Definition at line 41 of file PropertyList.cc.
|
virtualdefaultnoexcept |
Destructor.
|
protectedvirtualinherited |
|
privatevirtual |
Definition at line 242 of file PropertyList.cc.
|
protectedvirtualinherited |
|
privatevirtual |
Definition at line 237 of file PropertyList.cc.
|
privatevirtual |
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 229 of file PropertyList.cc.
void lsst::daf::base::PropertyList::add | ( | std::string const & | name, |
char const * | value ) |
Append 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 143 of file PropertyList.cc.
|
inline |
Version of add char* value that accepts a comment.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Character string value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 276 of file PropertyList.h.
void lsst::daf::base::PropertyList::add | ( | std::string const & | name, |
char const * | value, | ||
std::string const & | comment ) |
Version of add char* value that accepts a comment.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Character string value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 174 of file PropertyList.cc.
void lsst::daf::base::PropertyList::add | ( | std::string const & | name, |
std::vector< T > const & | value ) |
Append 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 146 of file PropertyList.cc.
|
inline |
Version of add vector value that accepts a comment.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Character string value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 271 of file PropertyList.h.
void lsst::daf::base::PropertyList::add | ( | std::string const & | name, |
std::vector< T > const & | value, | ||
std::string const & | comment ) |
Version of add vector value that accepts a comment.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Character string value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 179 of file PropertyList.cc.
void lsst::daf::base::PropertyList::add | ( | std::string const & | name, |
T const & | value ) |
Append 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. |
If value
is a PropertySet
, the default implementation will allow it to be retreived later via get
(or other methods) using the given name
, and the result will be the same shared_ptr
passed in, but this is not guaranteed to be the behavior for all derived classes, which may flatten out PropertySet
values instead.
Definition at line 139 of file PropertyList.cc.
|
inline |
Version of add scalar value that accepts a comment.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 266 of file PropertyList.h.
void lsst::daf::base::PropertyList::add | ( | std::string const & | name, |
T const & | value, | ||
std::string const & | comment ) |
Version of add scalar value that accepts a comment.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 169 of file PropertyList.cc.
std::list< std::string >::const_iterator lsst::daf::base::PropertyList::begin | ( | ) | const |
Begin iterator over the list of property names, in the order they were added.
Definition at line 90 of file PropertyList.cc.
|
virtual |
Append all value vectors from the source to their corresponding properties.
Sets values if a property does not exist.
If a property already exists then the types of the existing value(s) must match the type of the value(s) in source.
[in] | source | PropertySet to extract values from. |
TypeError | Type does not match existing values for an item. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 197 of file PropertyList.cc.
|
virtual |
Replace a single value vector in the destination with one from the source.
[in] | dest | Destination property name. |
[in] | source | PropertySet to extract values from. |
[in] | name | Property name to extract. |
[in] | asScalar | If true copy the item as a scalar by ignoring all but the last value (which is the value returned by get<T>(name)) |
TypeError | Type does not match existing values. |
InvalidParameterError | Name does not exist in source. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 187 of file PropertyList.cc.
|
virtual |
Make a deep copy of the PropertyList and all of its contents.
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 51 of file PropertyList.cc.
std::list< std::string >::const_iterator lsst::daf::base::PropertyList::end | ( | ) | const |
End iterator over the list of property names, in the order they were added.
Definition at line 92 of file PropertyList.cc.
|
inherited |
Determine if a name (possibly hierarchical) exists.
[in] | name | Property name to examine, possibly hierarchical. |
T lsst::daf::base::PropertyList::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 62 of file PropertyList.cc.
T lsst::daf::base::PropertyList::get | ( | std::string const & | name, |
T const & | defaultValue ) const |
Get the last value for a property name (possibly hierarchical); return 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 68 of file PropertyList.cc.
std::vector< T > lsst::daf::base::PropertyList::getArray | ( | std::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 74 of file PropertyList.cc.
|
inherited |
Get the last value for a bool property name (possibly hierarchical).
Only bool properties are supported.
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value is not a bool. |
|
inherited |
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. |
|
inherited |
Get the last value for a bool/char/short/int property name (possibly hierarchical).
Unsigned int properties are not acceptable.
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value cannot be converted to int. |
|
inherited |
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. |
|
inherited |
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. |
|
inherited |
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. |
|
inherited |
Get the last value for a string property name (possibly hierarchical).
Only strings values are supported, though this does include properties set with char const*
.
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value is not a string. |
|
inherited |
Get the last value for an bool/char/short/int/int64_t property name (possibly hierarchical).
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value cannot be converted to uint64_t. |
std::string const & lsst::daf::base::PropertyList::getComment | ( | std::string const & | name | ) | const |
Get the comment for a string property name (possibly hierarchical).
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
Definition at line 78 of file PropertyList.cc.
std::vector< std::string > lsst::daf::base::PropertyList::getOrderedNames | ( | ) | const |
Get the list of property names, in the order they were added.
Definition at line 82 of file PropertyList.cc.
|
inherited |
Determine if a name (possibly hierarchical) has multiple values.
[in] | name | Property name to examine, possibly hierarchical. |
|
inherited |
Determine if a name (possibly hierarchical) is a subproperty.
[in] | name | Property name to examine, possibly hierarchical. |
|
inherited |
Determine if a name (possibly hierarchical) has a defined value.
[in] | name | Property name to examine, possibly hierarchical. |
|
inherited |
Get the number of names in the PropertySet, optionally including those in subproperties.
[in] | topLevelOnly | If true (default) omit names from subproperties and names of subproperties. |
|
inherited |
Get the names in the PropertySet, optionally including those in subproperties.
[in] | topLevelOnly | If true (default) omit names from subproperties and names of subproperties. If false subproperty names are separated by a dot, e.g. "subname.subitem1" |
|
inherited |
A variant of names that excludes the names of subproperties.
|
inherited |
A variant of names that only returns the names of subproperties.
|
virtual |
Remove 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 from lsst::daf::base::PropertySet.
Definition at line 219 of file PropertyList.cc.
void lsst::daf::base::PropertyList::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 131 of file PropertyList.cc.
|
inline |
Version of set char* value that accepts a comment.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Character string value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 260 of file PropertyList.h.
void lsst::daf::base::PropertyList::set | ( | std::string const & | name, |
char const * | value, | ||
std::string const & | comment ) |
Version of set char* value that accepts a comment.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Character string value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 159 of file PropertyList.cc.
void lsst::daf::base::PropertyList::set | ( | std::string const & | name, |
std::shared_ptr< PropertySet > const & | value ) |
Replace all values for a property name (possibly hierarchical) with a new PropertySet.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Value to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Unlike the base PropertySet
implementation, PropertyList
flattens out nested PropertySet
objects, storing their keys with nested names but not the PropertySet
instance itself.
Definition at line 118 of file PropertyList.cc.
void lsst::daf::base::PropertyList::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 134 of file PropertyList.cc.
|
inline |
Version of set vector value that accepts a comment.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Vector value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 255 of file PropertyList.h.
void lsst::daf::base::PropertyList::set | ( | std::string const & | name, |
std::vector< T > const & | value, | ||
std::string const & | comment ) |
Version of set vector value that accepts a comment.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Vector value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 164 of file PropertyList.cc.
void lsst::daf::base::PropertyList::set | ( | std::string const & | name, |
T const & | value ) |
Replace all values for a property name (possibly hierarchical) with a new scalar value.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Value to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
If value
is a PropertySet
, the default implementation will allow it to be retreived later via get
(or other methods) using the given name
, and the result will be the same shared_ptr
passed in, but this is not guaranteed to be the behavior for all derived classes, which may flatten out PropertySet
values instead.
Definition at line 114 of file PropertyList.cc.
|
inline |
Version of set scalar value that accepts a comment.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 249 of file PropertyList.h.
void lsst::daf::base::PropertyList::set | ( | std::string const & | name, |
T const & | value, | ||
std::string const & | comment ) |
Version of set scalar value that accepts a comment.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 154 of file PropertyList.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 from lsst::daf::base::PropertySet.
Definition at line 94 of file PropertyList.cc.
|
inherited |
Get the type of values for a property name (possibly hierarchical).
If the value is an array this returns the type of the elements.
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
|
staticinherited |
Get type info for the specified class.
|
inherited |
Get the number of values in the entire PropertySet, counting each element of a vector.
|
inherited |
Get the number of values for a property name (possibly hierarchical).
[in] | name | Property name to examine, possibly hierarchical. |