LSSTApplications  18.1.0
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
lsst::daf::base::PropertySet Class Reference

Class for storing generic metadata. More...

#include <PropertySet.h>

Inheritance diagram for lsst::daf::base::PropertySet:
lsst::daf::base::Citizen lsst::daf::base::PropertyList

Public Types

typedef std::shared_ptr< PropertySetPtr
 
typedef std::shared_ptr< PropertySet const > ConstPtr
 
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)
 Construct an empty PropertySet. More...
 
virtual ~PropertySet () noexcept
 Destructor. More...
 
 PropertySet (const PropertySet &)=delete
 
PropertySetoperator= (const PropertySet &)=delete
 
 PropertySet (PropertySet &&)=delete
 
PropertySetoperator= (PropertySet &&)=delete
 
virtual Ptr deepCopy () const
 Make a deep copy of the PropertySet and all of its contents. More...
 
size_t nameCount (bool topLevelOnly=true) const
 Get the number of names in the PropertySet, optionally including those in subproperties. More...
 
std::vector< std::stringnames (bool topLevelOnly=true) const
 Get the names in the PropertySet, optionally including those in subproperties. More...
 
std::vector< std::stringparamNames (bool topLevelOnly=true) const
 A variant of names that excludes the names of subproperties. More...
 
std::vector< std::stringpropertySetNames (bool topLevelOnly=true) const
 A variant of names that only returns the names of subproperties. More...
 
bool exists (std::string const &name) const
 Determine if a name (possibly hierarchical) exists. More...
 
bool isArray (std::string const &name) const
 Determine if a name (possibly hierarchical) has multiple values. More...
 
bool isPropertySetPtr (std::string const &name) const
 Determine if a name (possibly hierarchical) is a subproperty. More...
 
bool isUndefined (std::string const &name) const
 Determine if a name (possibly hierarchical) has a defined value. More...
 
size_t valueCount (std::string const &name) const
 Get the number of values for a property name (possibly hierarchical). More...
 
std::type_info const & typeOf (std::string const &name) const
 Get the type of values for a property name (possibly hierarchical). More...
 
template<typename T >
get (std::string const &name) const
 Get the last value for a property name (possibly hierarchical). More...
 
template<typename 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. More...
 
template<typename T >
std::vector< T > getArray (std::string const &name) const
 Get the vector of values for a property name (possibly hierarchical). More...
 
bool getAsBool (std::string const &name) const
 Get the last value for a bool property name (possibly hierarchical). More...
 
int getAsInt (std::string const &name) const
 Get the last value for a bool/char/short/int property name (possibly hierarchical). More...
 
int64_t getAsInt64 (std::string const &name) const
 Get the last value for a bool/char/short/int/int64_t property name (possibly hierarchical). More...
 
uint64_t getAsUInt64 (std::string const &name) const
 Get the last value for an bool/char/short/int/int64_t property name (possibly hierarchical). More...
 
double getAsDouble (std::string const &name) const
 Get the last value for any arithmetic property name (possibly hierarchical). More...
 
std::string getAsString (std::string const &name) const
 Get the last value for a string property name (possibly hierarchical). More...
 
PropertySet::Ptr getAsPropertySetPtr (std::string const &name) const
 Get the last value for a subproperty name (possibly hierarchical). More...
 
Persistable::Ptr getAsPersistablePtr (std::string const &name) const
 Get the last value for a Persistable name (possibly hierarchical). More...
 
virtual std::string toString (bool topLevelOnly=false, std::string const &indent="") const
 Generate a string representation of the PropertySet. More...
 
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. More...
 
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. More...
 
void set (std::string const &name, char const *value)
 Replace all values for a property name (possibly hierarchical) with a string value. More...
 
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). More...
 
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). More...
 
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). More...
 
virtual void copy (std::string const &dest, ConstPtr source, std::string const &name, bool asScalar=false)
 Replace a single value vector in the destination with one from the source. More...
 
virtual void combine (ConstPtr source)
 Append all value vectors from the source to their corresponding properties. More...
 
virtual void remove (std::string const &name)
 Remove all values for a property name (possibly hierarchical). More...
 
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...
 

Static Public Member Functions

template<typename T >
static std::type_info const & typeOfT ()
 Get type info for the specified class. More...
 
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...
 
Census

Provide a list of current Citizens

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...
 
callbackIDs

Set callback Ids.

The old Id is returned

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...
 
callbacks

Set the New/Delete callback functions; in each case the previously installed callback is returned.

These callback functions return a value which is Added to the previously registered id.

The default callback functions are called default{New,Delete}Callback; you may want to set a break point in these callbacks from your favourite debugger

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...
 

Protected Member Functions

virtual void _set (std::string const &name, std::shared_ptr< std::vector< boost::any > > vp)
 
virtual void _add (std::string const &name, std::shared_ptr< std::vector< boost::any > > vp)
 
virtual std::string _format (std::string const &name) const
 

Detailed Description

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 68 of file PropertySet.h.

Member Typedef Documentation

◆ ConstPtr

Definition at line 72 of file PropertySet.h.

◆ memCallback

typedef memId(* lsst::daf::base::Citizen::memCallback) (const Citizen *ptr)
inherited

Definition at line 61 of file Citizen.h.

◆ memId

typedef unsigned long lsst::daf::base::Citizen::memId
inherited

Type of the block's ID.

Definition at line 58 of file Citizen.h.

◆ memNewCallback

typedef memId(* lsst::daf::base::Citizen::memNewCallback) (const memId cid)
inherited

A function used to register a callback.

Definition at line 60 of file Citizen.h.

◆ Ptr

Definition at line 71 of file PropertySet.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited
Enumerator
magicSentinel 

Definition at line 88 of file Citizen.h.

Constructor & Destructor Documentation

◆ PropertySet() [1/3]

lsst::daf::base::PropertySet::PropertySet ( bool  flat = false)
explicit

Construct an empty PropertySet.

Parameters
[in]flatfalse (default) = flatten hierarchy by ignoring dots in names

◆ ~PropertySet()

virtual lsst::daf::base::PropertySet::~PropertySet ( )
virtualnoexcept

Destructor.

◆ PropertySet() [2/3]

lsst::daf::base::PropertySet::PropertySet ( const PropertySet )
delete

◆ PropertySet() [3/3]

lsst::daf::base::PropertySet::PropertySet ( PropertySet &&  )
delete

Member Function Documentation

◆ _add()

virtual void lsst::daf::base::PropertySet::_add ( std::string const &  name,
std::shared_ptr< std::vector< boost::any > >  vp 
)
protectedvirtual

◆ _format()

virtual std::string lsst::daf::base::PropertySet::_format ( std::string const &  name) const
protectedvirtual

◆ _set()

virtual void lsst::daf::base::PropertySet::_set ( std::string const &  name,
std::shared_ptr< std::vector< boost::any > >  vp 
)
protectedvirtual

◆ add() [1/3]

template<typename T >
void lsst::daf::base::PropertySet::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.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueValue to append.
Exceptions
TypeErrorType does not match existing values.
InvalidParameterErrorHierarchical name uses non-PropertySet.

◆ add() [2/3]

template<typename T >
void lsst::daf::base::PropertySet::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.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueVector of values to append.
Exceptions
TypeErrorType does not match existing values.
InvalidParameterErrorHierarchical name uses non-PropertySet.
Note
May only partially add the vector if an exception occurs.

◆ add() [3/3]

void lsst::daf::base::PropertySet::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.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueCharacter string value to append.
Exceptions
TypeErrorType does not match existing values.
InvalidParameterErrorHierarchical name uses non-PropertySet.

◆ census() [1/3]

int lsst::daf::base::Citizen::census ( int  ,
memId  startingMemId = 0 
)
staticinherited

How many active Citizens are there?

Parameters
startingMemIdDon't print Citizens with lower IDs

Definition at line 238 of file Citizen.cc.

240  {
241  if (startingMemId == 0) { // easy
242  ReadGuard guard(citizenLock);
243  return _activeCitizens.size();
244  }
245 
246  int n = 0;
247  ReadGuard guard(citizenLock);
248  for (table::iterator cur = _activeCitizens.begin(); cur != _activeCitizens.end(); cur++) {
249  if (cur->first->_CitizenId >= startingMemId) {
250  n++;
251  }
252  }
253 
254  return n;
255 }
T end(T... args)
T size(T... args)
T begin(T... args)

◆ census() [2/3]

void lsst::daf::base::Citizen::census ( std::ostream stream,
memId  startingMemId = 0 
)
staticinherited

Print a list of all active Citizens to stream, sorted by ID.

Parameters
streamstream to print to
startingMemIdDon't print Citizens with lower IDs

Definition at line 259 of file Citizen.cc.

261  {
262  ReadGuard guard(citizenLock);
263 
265 
266  for (std::vector<Citizen const*>::const_iterator citizen = leaks->begin(), end = leaks->end();
267  citizen != end; ++citizen) {
268  if ((*citizen)->getId() >= startingMemId) {
269  stream << (*citizen)->repr() << "\n";
270  }
271  }
272 }
STL class.
STL class.
T begin(T... args)
int end
static const std::vector< const Citizen * > * census()
Return a (newly allocated) std::vector of active Citizens sorted by ID.
Definition: Citizen.cc:287

◆ census() [3/3]

std::vector< dafBase::Citizen const * > const * lsst::daf::base::Citizen::census ( )
staticinherited

Return a (newly allocated) std::vector of active Citizens sorted by ID.

You are responsible for deleting it; or you can say std::unique_ptr<std::vector<Citizen const*> const> leaks(Citizen::census()); and not bother (that becomes std::unique_ptr in C++11)

Definition at line 287 of file Citizen.cc.

287  {
289  ReadGuard guard(citizenLock);
290  vec->reserve(_activeCitizens.size());
291 
292  for (table::iterator cur = _activeCitizens.begin(); cur != _activeCitizens.end(); cur++) {
293  vec->push_back(dynamic_cast<Citizen const*>(cur->first));
294  }
295 
296  std::sort(vec->begin(), vec->end(), cmpId);
297 
298  return vec;
299 }
T end(T... args)
T push_back(T... args)
T size(T... args)
STL class.
T begin(T... args)
T sort(T... args)
T reserve(T... args)

◆ combine()

virtual void lsst::daf::base::PropertySet::combine ( ConstPtr  source)
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.

Parameters
[in]sourcePropertySet::Ptr for the source PropertySet.
Exceptions
TypeErrorType does not match existing values for an item.
InvalidParameterErrorHierarchical name uses non-PropertySet.
Warning
May only partially combine the PropertySets if an exception occurs.

Reimplemented in lsst::daf::base::PropertyList.

◆ copy()

virtual void lsst::daf::base::PropertySet::copy ( std::string const &  dest,
ConstPtr  source,
std::string const &  name,
bool  asScalar = false 
)
virtual

Replace a single value vector in the destination with one from the source.

Parameters
[in]destDestination property name.
[in]sourcePropertySet::Ptr for the source PropertySet.
[in]nameProperty name to extract.
[in]asScalarIf true copy the item as a scalar by ignoring all but the last value (which is the value returned by get<T>(name))
Exceptions
TypeErrorType does not match existing values.
InvalidParameterErrorName does not exist in source.
InvalidParameterErrorHierarchical name uses non-PropertySet.

Reimplemented in lsst::daf::base::PropertyList.

◆ deepCopy()

virtual Ptr lsst::daf::base::PropertySet::deepCopy ( ) const
virtual

Make a deep copy of the PropertySet and all of its contents.

Returns
PropertySet::Ptr pointing to the new copy.

Reimplemented in lsst::daf::base::PropertyList.

◆ exists()

bool lsst::daf::base::PropertySet::exists ( std::string const &  name) const

Determine if a name (possibly hierarchical) exists.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
true if property exists.

◆ get() [1/2]

template<typename T >
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:

int i = propertySet.get<int>("foo")
Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Last value set or added.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue does not match desired type.

◆ get() [2/2]

template<typename T >
T lsst::daf::base::PropertySet::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:

int i = propertySet.get<int>("foo", 42)
Parameters
[in]nameProperty name to examine, possibly hierarchical.
[in]defaultValueDefault value to return if property does not exist.
Returns
Last value set or added.
Exceptions
TypeErrorValue does not match desired type.

◆ getArray()

template<typename T >
std::vector<T> lsst::daf::base::PropertySet::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:

vector<int> v = propertySet.getArray<int>("foo")
Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Vector of values.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue does not match desired type.

◆ getAsBool()

bool lsst::daf::base::PropertySet::getAsBool ( std::string const &  name) const

Get the last value for a bool property name (possibly hierarchical).

Only bool properties are supported.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as a bool.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue is not a bool.

◆ getAsDouble()

double lsst::daf::base::PropertySet::getAsDouble ( std::string const &  name) const

Get the last value for any arithmetic property name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as a double.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue cannot be converted to double.

◆ getAsInt()

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.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as an int.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue cannot be converted to int.

◆ getAsInt64()

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.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as an int64_t.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue cannot be converted to int64_t.

◆ getAsPersistablePtr()

Persistable::Ptr lsst::daf::base::PropertySet::getAsPersistablePtr ( std::string const &  name) const

Get the last value for a Persistable name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Persistable::Ptr value.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue is not a Persistable::Ptr.

◆ getAsPropertySetPtr()

PropertySet::Ptr lsst::daf::base::PropertySet::getAsPropertySetPtr ( std::string const &  name) const

Get the last value for a subproperty name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
PropertySet::Ptr value.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue is not a PropertySet::Ptr.

◆ getAsString()

std::string lsst::daf::base::PropertySet::getAsString ( std::string const &  name) const

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*.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
String value.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue is not a string.

◆ getAsUInt64()

uint64_t lsst::daf::base::PropertySet::getAsUInt64 ( std::string const &  name) const

Get the last value for an bool/char/short/int/int64_t property name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as an uint64_t.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue cannot be converted to uint64_t.

◆ getId()

dafBase::Citizen::memId lsst::daf::base::Citizen::getId ( ) const
inherited

Return the Citizen's ID.

Definition at line 206 of file Citizen.cc.

206 { return _CitizenId; }

◆ getNextMemId()

dafBase::Citizen::memId lsst::daf::base::Citizen::getNextMemId ( )
staticinherited

Return the memId of the next object to be allocated.

Definition at line 209 of file Citizen.cc.

209 { return _nextMemId(); }

◆ hasBeenCorrupted()

bool lsst::daf::base::Citizen::hasBeenCorrupted ( )
staticinherited

Check all allocated blocks for corruption.

Definition at line 316 of file Citizen.cc.

316  {
317  ReadGuard guard(citizenLock);
318  for (table::iterator cur = _activeCitizens.begin(); cur != _activeCitizens.end(); cur++) {
319  if (cur->first->_hasBeenCorrupted()) {
320  return true;
321  }
322  }
323  for (table::iterator cur = _persistentCitizens.begin(); cur != _persistentCitizens.end(); cur++) {
324  if (cur->first->_hasBeenCorrupted()) {
325  return true;
326  }
327  }
328 
329  return false;
330 }
T end(T... args)
T begin(T... args)

◆ init()

int lsst::daf::base::Citizen::init ( )
staticinherited

Called once when the memory system is being initialised.

Definition at line 196 of file Citizen.cc.

196  {
197  volatile int dummy = 1;
198  return dummy;
199 }

◆ isArray()

bool lsst::daf::base::PropertySet::isArray ( std::string const &  name) const

Determine if a name (possibly hierarchical) has multiple values.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
true if property exists and has more than one value.

◆ isPropertySetPtr()

bool lsst::daf::base::PropertySet::isPropertySetPtr ( std::string const &  name) const

Determine if a name (possibly hierarchical) is a subproperty.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
true if property exists and its values are PropertySet::Ptrs.

◆ isUndefined()

bool lsst::daf::base::PropertySet::isUndefined ( std::string const &  name) const

Determine if a name (possibly hierarchical) has a defined value.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
true if property exists and its values are undefined.

◆ markPersistent()

void lsst::daf::base::Citizen::markPersistent ( void  )
inherited

Mark a Citizen as persistent and not destroyed until process end.

Definition at line 225 of file Citizen.cc.

225  {
226  WriteGuard guard(citizenLock);
227  _persistentCitizens[this] = _activeCitizens[this];
228  _activeCitizens.erase(this);
229 }
T erase(T... args)

◆ nameCount()

size_t lsst::daf::base::PropertySet::nameCount ( bool  topLevelOnly = true) const

Get the number of names in the PropertySet, optionally including those in subproperties.

Parameters
[in]topLevelOnlyIf true (default) omit names from subproperties and names of subproperties.
Returns
Number of names.

◆ names()

std::vector<std::string> lsst::daf::base::PropertySet::names ( bool  topLevelOnly = true) const

Get the names in the PropertySet, optionally including those in subproperties.

Parameters
[in]topLevelOnlyIf true (default) omit names from subproperties and names of subproperties. If false subproperty names are separated by a dot, e.g. "subname.subitem1"
Returns
Vector of names.

◆ operator=() [1/2]

PropertySet& lsst::daf::base::PropertySet::operator= ( const PropertySet )
delete

◆ operator=() [2/2]

PropertySet& lsst::daf::base::PropertySet::operator= ( PropertySet &&  )
delete

◆ paramNames()

std::vector<std::string> lsst::daf::base::PropertySet::paramNames ( bool  topLevelOnly = true) const

A variant of names that excludes the names of subproperties.

◆ propertySetNames()

std::vector<std::string> lsst::daf::base::PropertySet::propertySetNames ( bool  topLevelOnly = true) const

A variant of names that only returns the names of subproperties.

◆ remove()

virtual void lsst::daf::base::PropertySet::remove ( std::string const &  name)
virtual

Remove all values for a property name (possibly hierarchical).

Does nothing if the property does not exist.

Parameters
[in]nameProperty name to remove, possibly hierarchical.

Reimplemented in lsst::daf::base::PropertyList.

◆ repr()

std::string lsst::daf::base::Citizen::repr ( ) const
inherited

Return a string representation of a Citizen.

Definition at line 219 of file Citizen.cc.

219  {
220  return boost::str(boost::format("%d: %08x %s") % _CitizenId % this %
221  lsst::utils::demangleType(_typeName));
222 }
std::string demangleType(std::string const _typeName)
Definition: Demangle.cc:113
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:168

◆ set() [1/3]

template<typename T >
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 scalar value.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueValue to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

◆ set() [2/3]

template<typename T >
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.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueVector of values to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

◆ set() [3/3]

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.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueCharacter string (converted to std::string ).

◆ setCorruptionCallback()

dafBase::Citizen::memCallback lsst::daf::base::Citizen::setCorruptionCallback ( Citizen::memCallback  func)
staticinherited

Set the CorruptionCallback function.

Parameters
funcfunction be called when block is found to be corrupted

Definition at line 391 of file Citizen.cc.

393  {
394  Citizen::memCallback old = _corruptionCallback;
395  _corruptionCallback = func;
396 
397  return old;
398 }
memId(* memCallback)(const Citizen *ptr)
Definition: Citizen.h:61

◆ setDeleteCallback()

dafBase::Citizen::memCallback lsst::daf::base::Citizen::setDeleteCallback ( Citizen::memCallback  func)
staticinherited

Set the DeleteCallback function.

Parameters
funcfunction be called when desired block is deleted

Definition at line 381 of file Citizen.cc.

383  {
384  Citizen::memCallback old = _deleteCallback;
385  _deleteCallback = func;
386 
387  return old;
388 }
memId(* memCallback)(const Citizen *ptr)
Definition: Citizen.h:61

◆ setDeleteCallbackId()

dafBase::Citizen::memId lsst::daf::base::Citizen::setDeleteCallbackId ( Citizen::memId  id)
staticinherited

Call the current DeleteCallback when block is deleted.

Parameters
idDesired ID

Definition at line 347 of file Citizen.cc.

348  {
349  WriteGuard guard(citizenLock);
350  Citizen::memId oldId = _deleteId;
351  _deleteId = id;
352 
353  return oldId;
354 }
unsigned long memId
Type of the block&#39;s ID.
Definition: Citizen.h:58
table::Key< int > id
Definition: Detector.cc:166

◆ setNewCallback()

dafBase::Citizen::memNewCallback lsst::daf::base::Citizen::setNewCallback ( Citizen::memNewCallback  func)
staticinherited

Set the NewCallback function.

Parameters
funcThe new function to be called when a designated block is allocated

Definition at line 371 of file Citizen.cc.

373  {
374  Citizen::memNewCallback old = _newCallback;
375  _newCallback = func;
376 
377  return old;
378 }
memId(* memNewCallback)(const memId cid)
A function used to register a callback.
Definition: Citizen.h:60

◆ setNewCallbackId()

dafBase::Citizen::memId lsst::daf::base::Citizen::setNewCallbackId ( Citizen::memId  id)
staticinherited

Call the NewCallback when block is allocated.

Parameters
idDesired ID

Definition at line 337 of file Citizen.cc.

338  {
339  WriteGuard guard(citizenLock);
340  Citizen::memId oldId = _newId;
341  _newId = id;
342 
343  return oldId;
344 }
unsigned long memId
Type of the block&#39;s ID.
Definition: Citizen.h:58
table::Key< int > id
Definition: Detector.cc:166

◆ toString()

virtual std::string lsst::daf::base::PropertySet::toString ( bool  topLevelOnly = false,
std::string const &  indent = "" 
) const
virtual

Generate a string representation of the PropertySet.

Use this for debugging, not for serialization/persistence.

Parameters
[in]topLevelOnlyfalse (default) = do include subproperties.
[in]indentString to indent lines by (default none).
Returns
String representation of the PropertySet.

Reimplemented in lsst::daf::base::PropertyList.

◆ typeOf()

std::type_info const& lsst::daf::base::PropertySet::typeOf ( std::string const &  name) const

Get the type of values for a property name (possibly hierarchical).

If the value is an array this returns the type of the elements.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Type of values for that property.
Exceptions
NotFoundErrorProperty does not exist.

◆ typeOfT()

template<typename T >
static std::type_info const& lsst::daf::base::PropertySet::typeOfT ( )
static

Get type info for the specified class.

◆ valueCount()

size_t lsst::daf::base::PropertySet::valueCount ( std::string const &  name) const

Get the number of values for a property name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Number of values for that property. 0 if it doesn't exist.

The documentation for this class was generated from the following file: