summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/LB_PropertyManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/LB_PropertyManager.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/LB_PropertyManager.h35
1 files changed, 23 insertions, 12 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LB_PropertyManager.h b/TAO/orbsvcs/orbsvcs/LB_PropertyManager.h
index d98bf0061c4..4ef2d62d53f 100644
--- a/TAO/orbsvcs/orbsvcs/LB_PropertyManager.h
+++ b/TAO/orbsvcs/orbsvcs/LB_PropertyManager.h
@@ -24,11 +24,26 @@
#include "orbsvcs/LoadBalancingC.h"
+/**
+ * @class TAO_LB_PropertyManager
+ *
+ * @brief Class that implements the LoadBalancing::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_LB_ObjectGroup_Map_Entry structure. However, the
+ * PropertyManager is still used to manage those properties.
+ */
class TAO_LB_PropertyManager
: public virtual LoadBalancing::PropertyManager
{
public:
+ /// Constructor.
+ TAO_LB_PropertyManager (TAO_LB_ObjectGroup_Map &object_group_map);
+
/**
* @name TAO_LoadBalancer::PropertyManager methods
*/
@@ -103,7 +118,7 @@ public:
* 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
+ * were used when the replica was created, and default properties
* that weren't overridden.
*/
virtual LoadBalancing::Properties * get_properties (
@@ -168,26 +183,22 @@ public:
LoadBalancing::Properties,
ACE_Hash<const char *>,
ACE_Equal_To<const char *>,
- TAO_SYNCH_MUTEX> Type_Prop_Table;
-
- /// Properties used when a given object group was created.
- typedef ACE_Hash_Map_Manager_Ex<
- PortableServer::ObjectId,
- LoadBalancing::Properties,
- TAO_ObjectId_Hash,
- ACE_Equal_To<PortableServer::ObjectId>,
- TAO_SYNCH_MUTEX> Dynamic_Prop_Table;
+ ACE_Null_Mutex> Type_Prop_Table;
private:
+ /// Table that maps ObjectId to Object Group related information.
+ TAO_LB_ObjectGroup_Map &object_group_map_;
+
/// Default properties.
LoadBalancing::Properties default_properties_;
/// Table of type-specific object group properties.
Type_Prop_Table type_properties_;
- /// Table of object group properties used at run-time.
- Dynamic_Prop_Table dynamic_properties_;
+ /// Lock used to synchronize access to the default properties and
+ /// the type-specific properties.
+ TAO_SYNCH_MUTEX lock_;
};