- Main Page
- Namespaces
- Classes
- Files
- Related Pages

- Search for |

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# TAO::PG_Property_Set Class Reference

`#include <PG_Property_Set.h>`

Collaboration diagram for TAO::PG_Property_Set:

[legend]
List of all members.

## Public Member Functions
| PG_Property_Set (void)
| PG_Property_Set (const PortableGroup::Properties &property_set ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
| PG_Property_Set (const PortableGroup::Properties &property_set, PG_Property_Set *defaults ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
| PG_Property_Set (PG_Property_Set *defaults)
| ~PG_Property_Set ()
int | find (const ACE_CString &key, const PortableGroup::Value *&pValue) const
void | decode (const PortableGroup::Properties &property_set ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
void | clear ()
void | remove (const PortableGroup::Properties &property_set) throw (CORBA::SystemException)
void | set_property (const char *name, const PortableGroup::Value &value ACE_ENV_ARG_DECL)
void | export_properties (PortableGroup::Properties &property_set) const
## Private Types
typedef ACE_Hash_Map_Manager< ACE_CString, const PortableGroup::Value *, ACE_SYNCH_NULL_MUTEX > | ValueMap
typedef ACE_Hash_Map_Iterator< ACE_CString, const PortableGroup::Value *, ACE_SYNCH_NULL_MUTEX > | ValueMapIterator
## Private Member Functions
void | merge_properties (ValueMap &merged_values) const
| PG_Property_Set (const PG_Property_Set &rhs)
PG_Property_Set & | operator= (const PG_Property_Set &rhs)
## Private Attributes
TAO_SYNCH_MUTEX | internals_
ValueMap | values_
PG_Property_Set * | defaults_

## Detailed Description

The PG_Property_Set captures the set of properties from a PortableGroup::Properties structure in a more usable format (a hash map), and provides methods for operating on these properties.

It supports "chains" of property sets to implement default value semantics. If a requested property is not found in this set, the default set(s) are searched. Thus, any property found at this level overrides the defaults.

See: PG_Properties_Support for more details on use of this object.

A PG_Property_Set may also be used for it's original purpose as a stand-alone helper class for extracting values from PortableGroup::Properties.

## Member Typedef Documentation

typedef ACE_Hash_Map_Manager< ACE_CString, const PortableGroup::Value *, ACE_SYNCH_NULL_MUTEX> TAO::PG_Property_Set::ValueMap`[private]`

typedef ACE_Hash_Map_Iterator< ACE_CString, const PortableGroup::Value *, ACE_SYNCH_NULL_MUTEX> TAO::PG_Property_Set::ValueMapIterator`[private]`

## Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO::PG_Property_Set::PG_Property_Set | ( | void |  | ) |

constructor: empty set with no defaults.

TAO::PG_Property_Set::PG_Property_Set | ( | const PortableGroup::Properties &property_set | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException)

constructor

Parameters:

  | property_set | the properties to be decoded

TAO::PG_Property_Set::PG_Property_Set | ( | const PortableGroup::Properties & | property_set,
|  | PG_Property_Set *defaults | ACE_ENV_ARG_DECL_WITH_DEFAULTS |
| ) |  |  | throw (CORBA::SystemException)

constructor with defaults

Parameters:

  | property_set | the properties to be decoded
  | defaults | a propert set decoder that supplies default values.

TAO::PG_Property_Set::PG_Property_Set | ( | PG_Property_Set * | defaults | ) |

constructor with defaults, but no properties (yet) (note this is not a copy constructor)

Parameters:

  | defaults | a propert set decoder that supplies default values.

TAO::PG_Property_Set::~PG_Property_Set | ( |  | ) |

TAO::PG_Property_Set::PG_Property_Set | ( | const PG_Property_Set & | rhs | ) | `[private]`

## Member Function Documentation

void TAO::PG_Property_Set::clear | ( |  | ) |

Clear properties Does not clear default properties.

void TAO::PG_Property_Set::decode | ( | const PortableGroup::Properties &property_set | ACE_ENV_ARG_DECL | ) | throw (CORBA::SystemException)

Decode additional properties Duplicate values replace previous values.

Parameters:

  | property_set | the properties to be decoded

void TAO::PG_Property_Set::export_properties | ( | PortableGroup::Properties & | property_set | ) | const

Export the properties to a PortableGroup::Properties

This method is intended to be used to implement the PropertyManager::get_*_properties methods. If you want to access the properties for any purpose other than exporting them across a CORBA interface, it is much more efficient to use the find interface.

int TAO::PG_Property_Set::find | ( | const ACE_CString & | key,
|  | const PortableGroup::Value *& | pValue |
| ) |  |  | const

general purpose find. returns a pointer to an Any if templated methods were available: template <typename type=""> int find (const ACE_CString & key, TYPE & value) const; instead, see global function below

Parameters:

  | key | the (simple) name of the property
  | pValue | an out parameter to receive a pointer to the Any containing the value

Returns:
  boolean true if found

void TAO::PG_Property_Set::merge_properties | ( | ValueMap & | merged_values | ) | const`[private]`

populate a ValueMap with the properties known to this decoder including but overriding default values

PG_Property_Set& TAO::PG_Property_Set::operator= | ( | const PG_Property_Set & | rhs | ) | `[private]`

void TAO::PG_Property_Set::remove | ( | const PortableGroup::Properties & | property_set | ) | throw (CORBA::SystemException)

void TAO::PG_Property_Set::set_property | ( | const char * | name,
|  | const PortableGroup::Value &value | ACE_ENV_ARG_DECL |
| ) |  |  |

set or replace a single property

## Member Data Documentation

PG_Property_Set* TAO::PG_Property_Set::defaults_`[private]`

a parent to another property decoder that provides default values these can be chained indefinitely.

Todo:
  reference counted pointers would be a good idea here.

TAO_SYNCH_MUTEX TAO::PG_Property_Set::internals_`[mutable, private]`

Protect internal state.

ValueMap TAO::PG_Property_Set::values_`[private]`

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

- PG_Property_Set.h
- PG_Property_Set.cpp