#include <PG_ObjectGroupManager.h>
Collaboration diagram for TAO_PG_ObjectGroupManager:
Public Methods | |
TAO_PG_ObjectGroupManager (void) | |
Constructor. More... | |
~TAO_PG_ObjectGroupManager (void) | |
Destructor. More... | |
PortableGroup::ObjectGroup_ptr | _tao_add_member (PortableGroup::ObjectGroup_ptr object_group, const PortableGroup::Location &the_location, CORBA::Object_ptr member, const char *type_id, const CORBA::Boolean propagate_member_already_present ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::MemberAlreadyPresent, PortableGroup::NoFactory) |
This method is meant to be invoked by TAO's GenericFactory implementation. More... | |
PortableGroup::ObjectGroup_ptr | create_object_group (CORBA::ULong group_id, const PortableServer::ObjectId &oid, const char *type_id, const PortableGroup::Criteria &the_criteria ACE_ENV_ARG_DECL) |
void | destroy_object_group (const PortableServer::ObjectId &oid ACE_ENV_ARG_DECL) |
PortableGroup::Properties * | get_properties (PortableGroup::ObjectGroup_ptr object_group ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound) |
Return the properties set when the object group was created, and the dynamic properties that may have overridden them. More... | |
char * | type_id (PortableGroup::ObjectGroup_ptr object_group ACE_ENV_ARG_DECL) |
Return the type_id for the given object group. More... | |
PortableGroup::ObjectGroup_ptr | object_group (const PortableServer::ObjectId &oid) |
CORBA::ULong | member_count (PortableGroup::ObjectGroup_ptr group ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound) |
Return the number of members in the given object group. More... | |
void | poa (PortableServer::POA_ptr p) |
Set the POA to use when converting object group references to ObjectIds. More... | |
void | generic_factory (TAO_PG_GenericFactory *generic_factory) |
The TAO_PG_GenericFactory will only be used when ObjectGroupManager::remove_member() is explicitly called so that the infrastructure may be given an opportunity to clean up any object group members it may have created. More... | |
PortableGroup::ObjectGroupManager methods | |
virtual PortableGroup::ObjectGroup_ptr | create_member (PortableGroup::ObjectGroup_ptr object_group, const PortableGroup::Location &the_location, const char *type_id, const PortableGroup::Criteria &the_criteria ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound, PortableGroup::MemberAlreadyPresent, PortableGroup::NoFactory, PortableGroup::ObjectNotCreated, PortableGroup::InvalidCriteria, PortableGroup::CannotMeetCriteria) |
Create a member and add it to the given object group. More... | |
virtual PortableGroup::ObjectGroup_ptr | add_member (PortableGroup::ObjectGroup_ptr object_group, const PortableGroup::Location &the_location, CORBA::Object_ptr member ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound, PortableGroup::MemberAlreadyPresent, PortableGroup::ObjectNotAdded) |
Add an existing object to the ObjectGroup. More... | |
virtual PortableGroup::ObjectGroup_ptr | remove_member (PortableGroup::ObjectGroup_ptr object_group, const PortableGroup::Location &the_location ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound, PortableGroup::MemberNotFound) |
Remove an object at a specific location from the given ObjectGroup. More... | |
virtual PortableGroup::Locations * | locations_of_members (PortableGroup::ObjectGroup_ptr object_group ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound) |
Return the locations of the members in the given ObjectGroup. More... | |
virtual PortableGroup::ObjectGroupId | get_object_group_id (PortableGroup::ObjectGroup_ptr object_group ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound) |
Return the ObjectGroupId for the given ObjectGroup.
| |
virtual PortableGroup::ObjectGroup_ptr | get_object_group_ref (PortableGroup::ObjectGroup_ptr object_group ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound) |
| |
virtual CORBA::Object_ptr | get_member_ref (PortableGroup::ObjectGroup_ptr object_group, const PortableGroup::Location &loc ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound, PortableGroup::MemberNotFound) |
Return the reference corresponding to the member of a given ObjectGroup at the given location. More... | |
Protected Methods | |
PortableGroup::ObjectGroup_ptr | add_member_i (PortableGroup::ObjectGroup_ptr object_group, const PortableGroup::Location &the_location, CORBA::Object_ptr member, const CORBA::Boolean check_type_id ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound, PortableGroup::MemberAlreadyPresent, PortableGroup::ObjectNotAdded) |
Underlying and non-locking implementation of the add_member() and _tao_add_member() methods in this class. More... | |
TAO_PG_ObjectGroup_Map_Entry * | get_group_entry (PortableGroup::ObjectGroup_ptr object_group ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::ObjectGroupNotFound) |
Obtain the ObjectGroup hash map entry corresponding to the given ObjectGroup reference. More... | |
CORBA::Boolean | member_already_present (const TAO_PG_ObjectGroup_Array &groups, TAO_PG_ObjectGroup_Map_Entry *group_entry) |
A member is actually represented by the object group to which it belongs. More... | |
CORBA::Boolean | valid_type_id (PortableGroup::ObjectGroup_ptr object_group, TAO_PG_ObjectGroup_Map_Entry *group_entry, CORBA::Object_ptr member ACE_ENV_ARG_DECL) |
Private Attributes | |
PortableServer::POA_var | poa_ |
Reference to the POA that created the object group references. More... | |
TAO_PG_ObjectGroup_Map | object_group_map_ |
The underlying table that contains all object group information. More... | |
TAO_PG_Location_Map | location_map_ |
Map that contains list of all members at a given location, in addition to the load monitor at that location. More... | |
TAO_PG_GenericFactory * | generic_factory_ |
Pointer to the TAO_PG_GenericFactory class responsible for object group creation/destruction. More... | |
TAO_SYNCH_MUTEX | lock_ |
Lock used to synchronize access to the underlying tables. More... |
The ObjectGroupManager provides the interface necessary to facilitate application-controlled object group membership.
|
Constructor.
|
|
Destructor.
|
|
This method is meant to be invoked by TAO's GenericFactory implementation. It is designed to allow only certain exceptions to be propagated to the caller, and to prevent redundant remote RepositoryId checking. |
|
Add an existing object to the ObjectGroup.
|
|
Underlying and non-locking implementation of the add_member() and _tao_add_member() methods in this class.
|
|
Create a member and add it to the given object group.
|
|
|
|
|
|
The TAO_PG_GenericFactory will only be used when ObjectGroupManager::remove_member() is explicitly called so that the infrastructure may be given an opportunity to clean up any object group members it may have created.
|
|
Obtain the ObjectGroup hash map entry corresponding to the given ObjectGroup reference.
|
|
Return the reference corresponding to the member of a given ObjectGroup at the given location.
|
|
Return the ObjectGroupId for the given ObjectGroup.
|
|
|
|
Return the properties set when the object group was created, and the dynamic properties that may have overridden them.
|
|
Return the locations of the members in the given ObjectGroup.
|
|
A member is actually represented by the object group to which it belongs. In this implementation, a pointer to a object group hash map entry is associated with a given a location. |
|
Return the number of members in the given object group.
|
|
|
|
Set the POA to use when converting object group references to ObjectIds.
|
|
Remove an object at a specific location from the given ObjectGroup. Deletion of application created objects must be deleted by the application. Objects created by the infrastructure (load balancer) will be deleted by the infrastructure. |
|
Return the type_id for the given object group.
|
|
|
|
Pointer to the TAO_PG_GenericFactory class responsible for object group creation/destruction.
|
|
Map that contains list of all members at a given location, in addition to the load monitor at that location.
|
|
Lock used to synchronize access to the underlying tables.
|
|
The underlying table that contains all object group information.
|
|
Reference to the POA that created the object group references.
|