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:

Collaboration graph
[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::Propertiesget_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::Propertiesget_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::Propertiesget_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_ObjectGroupManagerobject_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_PG_PropertyManager::TAO_PG_PropertyManager TAO_PG_ObjectGroupManager object_group_manager  ) 
 

Constructor.


Member Function Documentation

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.

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.

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.

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.

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.

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:
Generated on Fri Dec 31 16:34:55 2004 for TAO_PortableGroup by  doxygen 1.3.9.1