Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

# TAO_PG_PropertyManager Class Reference

Class that implements the PortableGroup::PropertyManager interface. More...

`#include <PG_PropertyManager.h>`

Collaboration diagram for TAO_PG_PropertyManager:

[legend]
List of all members.

## Public Types
typedef ACE_Hash_Map_Manager_Ex< ACE_CString, PortableGroup::Properties, ACE_Hash< ACE_CString >, ACE_Equal_To< ACE_CString >, ACE_Null_Mutex > | Type_Prop_Table
| Type-specific property hash map.
## Public Member Functions
| TAO_PG_PropertyManager (TAO_PG_ObjectGroupManager &object_group_manager)
| Constructor.
PortableGroup::PropertyManager methods
Methods required by the PortableGroup::PropertyManager interface.
virtual void | set_default_properties (const PortableGroup::Properties &props ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)
| Set the default properties to be used by all object groups.
virtual PortableGroup::Properties * | get_default_properties (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
| Get the default properties used by all object groups.
virtual void | remove_default_properties (const PortableGroup::Properties &props ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)
| Remove default properties.
virtual void | set_type_properties (const char *type_id, const PortableGroup::Properties &overrides ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)
virtual PortableGroup::Properties * | get_type_properties (const char *type_id ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual void | remove_type_properties (const char *type_id, const PortableGroup::Properties &props ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)
| Remove the given properties associated with the Replica type ID.
virtual void | set_properties_dynamically (PortableGroup::ObjectGroup_ptr object_group, const PortableGroup::Properties &overrides ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)
virtual PortableGroup::Properties * | get_properties (PortableGroup::ObjectGroup_ptr object_group ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound)
## Private Member Functions
void | remove_properties (const PortableGroup::Properties &to_be_removed, PortableGroup::Properties &properties ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)
## Private Attributes
TAO_PG_ObjectGroupManager & | object_group_manager_
| Table that maps ObjectId to Object Group related information.
PortableGroup::Properties | default_properties_
| Default properties.
Type_Prop_Table | type_properties_
| Table of type-specific object group properties.
TAO_SYNCH_MUTEX | lock_
TAO_PG_Default_Property_Validator | property_validator_
| The property validator.

## Detailed Description

Class that implements the PortableGroup::PropertyManager interface.

Only the default and type-specific properties are housed in this class. The properties used at creation time of an object group and those set dynamically after object group creation are stored in the TAO_PG_ObjectGroup_Map_Entry structure. However, the PropertyManager is still used to manage those properties.

## Member Typedef Documentation

typedef ACE_Hash_Map_Manager_Ex< ACE_CString, PortableGroup::Properties, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> TAO_PG_PropertyManager::Type_Prop_Table

| Type-specific property hash map.

## Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_PG_PropertyManager::TAO_PG_PropertyManager | ( | TAO_PG_ObjectGroupManager & | object_group_manager | ) |

| Constructor.

## Member Function Documentation

virtual PortableGroup::Properties* TAO_PG_PropertyManager::get_default_properties | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Get the default properties used by all object groups.

PortableGroup::Properties * TAO_PG_PropertyManager::get_properties | ( | PortableGroup::ObjectGroup_ptr object_group | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound)`[virtual]`

| Return the properties currently in use by the given object group. These properties include those that were set dynamically, type-specific properties that weren't overridden, properties that were used when the replica was created, and default properties that weren't overridden.

virtual PortableGroup::Properties* TAO_PG_PropertyManager::get_type_properties | ( | const char *type_id | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException)`[virtual]`

| Return the properties associated with a give Replica type. These properties include the type-specific properties in use, in addition to the default properties that were not overridden.

virtual void TAO_PG_PropertyManager::remove_default_properties | ( | const PortableGroup::Properties &props | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)`[virtual]`

| Remove default properties.

void TAO_PG_PropertyManager::remove_properties | ( | const PortableGroup::Properties & | to_be_removed,
|  | PortableGroup::Properties &properties | ACE_ENV_ARG_DECL
| ) | throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)`[private]`

| Remove properties "to_be_removed" from the given list of properties.

virtual void TAO_PG_PropertyManager::remove_type_properties | ( | const char * | type_id,
|  | const PortableGroup::Properties &props | ACE_ENV_ARG_DECL_WITH_DEFAULTS
| ) | throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)`[virtual]`

| Remove the given properties associated with the Replica type ID.

virtual void TAO_PG_PropertyManager::set_default_properties | ( | const PortableGroup::Properties &props | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)`[virtual]`

| Set the default properties to be used by all object groups.

virtual void TAO_PG_PropertyManager::set_properties_dynamically | ( | PortableGroup::ObjectGroup_ptr | object_group,
|  | const PortableGroup::Properties &overrides | ACE_ENV_ARG_DECL_WITH_DEFAULTS
| ) | throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)`[virtual]`

| Dynamically set the properties associated with a given object group as the load balancer and replicas are being executed. These properties override the type-specific and default properties.

virtual void TAO_PG_PropertyManager::set_type_properties | ( | const char * | type_id,
|  | const PortableGroup::Properties &overrides | ACE_ENV_ARG_DECL_WITH_DEFAULTS
| ) | throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)`[virtual]`

| Set properties associated with a given Member type. These properties override the default properties.

## Member Data Documentation

PortableGroup::Properties TAO_PG_PropertyManager::default_properties_`[private]`

| Default properties.

TAO_SYNCH_MUTEX TAO_PG_PropertyManager::lock_`[private]`

| Lock used to synchronize access to the default properties and the type-specific properties.

TAO_PG_ObjectGroupManager& TAO_PG_PropertyManager::object_group_manager_`[private]`

| Table that maps ObjectId to Object Group related information.

TAO_PG_Default_Property_Validator TAO_PG_PropertyManager::property_validator_`[private]`

| The property validator. Todo: Strategize the validator, or use template policies.

Type_Prop_Table TAO_PG_PropertyManager::type_properties_`[private]`

| Table of type-specific object group properties.

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

- PG_PropertyManager.h
- PG_PropertyManager.cpp