TAO::PG_Object_Group Class Reference

#include <PG_Object_Group.h>

Collaboration diagram for TAO::PG_Object_Group:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PG_Object_Group (CORBA::ORB_ptr orb, PortableGroup::FactoryRegistry_ptr factory_registry, TAO::PG_Object_Group_Manipulator &manipulator, CORBA::Object_ptr empty_group, const PortableGroup::TagGroupTaggedComponent &tagged_component, const char *type_id, const PortableGroup::Criteria &the_criteria, TAO::PG_Property_Set *type_properties)
 ~PG_Object_Group ()
 Destructor.
PortableGroup::ObjectGroup_ptr reference () const
 return a duplicated reference to this group (IOGR)
void get_group_specific_factories (PortableGroup::FactoryInfos &result) const
const PortableGroup::Locationget_primary_location () const
PortableGroup::TypeId get_type_id () const
PortableGroup::MembershipStyleValue get_membership_style () const
PortableGroup::MinimumNumberMembersValue get_minimum_number_members () const
PortableGroup::InitialNumberMembersValue get_initial_number_members () const
void set_properties_dynamically (const PortableGroup::Properties &overrides ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)
void get_properties (PortableGroup::Properties_var &result) const throw (CORBA::SystemException)
PortableGroup::ObjectGroupId get_object_group_id () const
void add_member (const PortableGroup::Location &the_location, CORBA::Object_ptr member ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::ObjectNotAdded)
int set_primary_member (TAO_IOP::TAO_IOR_Property *prop, const PortableGroup::Location &the_location ACE_ENV_ARG_DECL) throw ( CORBA::SystemException , PortableGroup::MemberNotFound )
void remove_member (const PortableGroup::Location &the_location ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::MemberNotFound)
void create_member (const PortableGroup::Location &the_location, const char *type_id, const PortableGroup::Criteria &the_criteria ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableGroup::MemberAlreadyPresent, PortableGroup::NoFactory, PortableGroup::ObjectNotCreated, PortableGroup::InvalidCriteria, PortableGroup::CannotMeetCriteria)
PortableGroup::Locationslocations_of_members (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
CORBA::Object_ptr get_member_reference (const PortableGroup::Location &the_location ACE_ENV_ARG_DECL) throw ( CORBA::SystemException, PortableGroup::MemberNotFound)
void initial_populate (ACE_ENV_SINGLE_ARG_DECL)
void minimum_populate (ACE_ENV_SINGLE_ARG_DECL)
int has_member_at (const PortableGroup::Location &location)

Private Types

typedef TAO_SYNCH_MUTEX MemberMapMutex
typedef ACE_Hash_Map_Manager_Ex<
PortableGroup::Location,
MemberInfo *, TAO_PG_Location_Hash,
TAO_PG_Location_Equal_To,
MemberMapMutex
MemberMap
typedef ACE_Hash_Map_Entry<
PortableGroup::Location,
MemberInfo * > 
MemberMap_Entry
typedef ACE_Hash_Map_Iterator_Ex<
PortableGroup::Location,
MemberInfo *, TAO_PG_Location_Hash,
TAO_PG_Location_Equal_To,
MemberMapMutex
MemberMap_Iterator

Private Member Functions

int increment_version ()
void distribute_iogr (ACE_ENV_SINGLE_ARG_DECL)
PortableGroup::ObjectGroup_ptr add_member_to_iogr (CORBA::Object_ptr member ACE_ENV_ARG_DECL)
void create_members (size_t count ACE_ENV_ARG_DECL) throw ( CORBA::SystemException, PortableGroup::NoFactory )
 PG_Object_Group ()
 PG_Object_Group (const PG_Object_Group &rhs)
PG_Object_Groupoperator= (const PG_Object_Group &rhs)

Private Attributes

TAO_SYNCH_MUTEX internals_
CORBA::ORB_var orb_
PortableGroup::FactoryRegistry_var factory_registry_
 Where to find the factories for replicas.
TAO::PG_Object_Group_Manipulatormanipulator_
int empty_
 boolean true if empty group
ACE_CString role_
PortableGroup::TypeId_var type_id_
PortableGroup::TagGroupTaggedComponent tagged_component_
PortableGroup::ObjectGroup_var reference_
PortableServer::ObjectId_var object_id_
MemberMap members_
PortableGroup::Location primary_location_
TAO::PG_Property_Set properties_
PortableGroup::InitialNumberMembersValue initial_number_members_
PortableGroup::MinimumNumberMembersValue minimum_number_members_
PortableGroup::FactoryInfos group_specific_factories_

Classes

struct  MemberInfo

Member Typedef Documentation

typedef ACE_Hash_Map_Manager_Ex< PortableGroup::Location, MemberInfo *, TAO_PG_Location_Hash, TAO_PG_Location_Equal_To, MemberMapMutex> TAO::PG_Object_Group::MemberMap [private]
 

typedef ACE_Hash_Map_Entry<PortableGroup::Location, MemberInfo *> TAO::PG_Object_Group::MemberMap_Entry [private]
 

typedef ACE_Hash_Map_Iterator_Ex< PortableGroup::Location, MemberInfo *, TAO_PG_Location_Hash, TAO_PG_Location_Equal_To, MemberMapMutex> TAO::PG_Object_Group::MemberMap_Iterator [private]
 

typedef TAO_SYNCH_MUTEX TAO::PG_Object_Group::MemberMapMutex [private]
 


Constructor & Destructor Documentation

TAO::PG_Object_Group::PG_Object_Group CORBA::ORB_ptr  orb,
PortableGroup::FactoryRegistry_ptr  factory_registry,
TAO::PG_Object_Group_Manipulator manipulator,
CORBA::Object_ptr  empty_group,
const PortableGroup::TagGroupTaggedComponent &  tagged_component,
const char *  type_id,
const PortableGroup::Criteria the_criteria,
TAO::PG_Property_Set type_properties
 

@TODO DOC

TAO::PG_Object_Group::~PG_Object_Group  ) 
 

Destructor.

TAO::PG_Object_Group::PG_Object_Group  )  [private]
 

TAO::PG_Object_Group::PG_Object_Group const PG_Object_Group rhs  )  [private]
 


Member Function Documentation

void TAO::PG_Object_Group::add_member const PortableGroup::Location the_location,
CORBA::Object_ptr member  ACE_ENV_ARG_DECL
throw (CORBA::SystemException, PortableGroup::ObjectNotAdded)
 

Add a new member to the group.

Parameters:
the_location the location for the new member
member the member to be added

PortableGroup::ObjectGroup_ptr TAO::PG_Object_Group::add_member_to_iogr CORBA::Object_ptr member  ACE_ENV_ARG_DECL  )  [private]
 

void TAO::PG_Object_Group::create_member const PortableGroup::Location the_location,
const char *  type_id,
const PortableGroup::Criteria &the_criteria  ACE_ENV_ARG_DECL
throw (CORBA::SystemException, PortableGroup::MemberAlreadyPresent, PortableGroup::NoFactory, PortableGroup::ObjectNotCreated, PortableGroup::InvalidCriteria, PortableGroup::CannotMeetCriteria)
 

@TODO DOC

void TAO::PG_Object_Group::create_members size_t count  ACE_ENV_ARG_DECL  )  throw ( CORBA::SystemException, PortableGroup::NoFactory ) [private]
 

void TAO::PG_Object_Group::distribute_iogr ACE_ENV_SINGLE_ARG_DECL   )  [private]
 

void TAO::PG_Object_Group::get_group_specific_factories PortableGroup::FactoryInfos result  )  const
 

Note the caller receives a copy of the factoryinfos in the result argument. inefficient, but thread safe.

PortableGroup::InitialNumberMembersValue TAO::PG_Object_Group::get_initial_number_members  )  const
 

@TODO DOC

CORBA::Object_ptr TAO::PG_Object_Group::get_member_reference const PortableGroup::Location &the_location  ACE_ENV_ARG_DECL  )  throw ( CORBA::SystemException, PortableGroup::MemberNotFound)
 

@TODO DOC

PortableGroup::MembershipStyleValue TAO::PG_Object_Group::get_membership_style  )  const
 

@TODO DOC

PortableGroup::MinimumNumberMembersValue TAO::PG_Object_Group::get_minimum_number_members  )  const
 

@TODO DOC

PortableGroup::ObjectGroupId TAO::PG_Object_Group::get_object_group_id  )  const
 

@TODO DOC

const PortableGroup::Location & TAO::PG_Object_Group::get_primary_location  )  const
 

get location of primary member

void TAO::PG_Object_Group::get_properties PortableGroup::Properties_var &  result  )  const throw (CORBA::SystemException)
 

@TODO DOC

PortableGroup::TypeId TAO::PG_Object_Group::get_type_id  )  const
 

returns a duplicate caller must release

int TAO::PG_Object_Group::has_member_at const PortableGroup::Location location  ) 
 

@TODO DOC

int TAO::PG_Object_Group::increment_version  )  [private]
 

void TAO::PG_Object_Group::initial_populate ACE_ENV_SINGLE_ARG_DECL   ) 
 

@TODO DOC

PortableGroup::Locations * TAO::PG_Object_Group::locations_of_members ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

@TODO DOC

void TAO::PG_Object_Group::minimum_populate ACE_ENV_SINGLE_ARG_DECL   ) 
 

@TODO DOC

PG_Object_Group& TAO::PG_Object_Group::operator= const PG_Object_Group rhs  )  [private]
 

PortableGroup::ObjectGroup_ptr TAO::PG_Object_Group::reference  )  const
 

return a duplicated reference to this group (IOGR)

void TAO::PG_Object_Group::remove_member const PortableGroup::Location &the_location  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException, PortableGroup::MemberNotFound)
 

@TODO DOC

int TAO::PG_Object_Group::set_primary_member TAO_IOP::TAO_IOR_Property *  prop,
const PortableGroup::Location &the_location  ACE_ENV_ARG_DECL
throw ( CORBA::SystemException , PortableGroup::MemberNotFound )
 

set the replica at the given location to be primary. Note: This should return void and throw FT::PrimaryNotSet but to avoid dependancies between PortableGroup and FaultTolerance it returns a boolean result. A false return means caller should throw FT::PrimaryNot_Set.

void TAO::PG_Object_Group::set_properties_dynamically const PortableGroup::Properties &overrides  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException, PortableGroup::InvalidProperty, PortableGroup::UnsupportedProperty)
 

@TODO DOC


Member Data Documentation

int TAO::PG_Object_Group::empty_ [private]
 

boolean true if empty group

PortableGroup::FactoryRegistry_var TAO::PG_Object_Group::factory_registry_ [private]
 

Where to find the factories for replicas.

PortableGroup::FactoryInfos TAO::PG_Object_Group::group_specific_factories_ [private]
 

PortableGroup::InitialNumberMembersValue TAO::PG_Object_Group::initial_number_members_ [private]
 

TAO_SYNCH_MUTEX TAO::PG_Object_Group::internals_ [mutable, private]
 

Protect internal state.

TAO::PG_Object_Group_Manipulator& TAO::PG_Object_Group::manipulator_ [private]
 

MemberMap TAO::PG_Object_Group::members_ [private]
 

PortableGroup::MinimumNumberMembersValue TAO::PG_Object_Group::minimum_number_members_ [private]
 

PortableServer::ObjectId_var TAO::PG_Object_Group::object_id_ [private]
 

The CORBA object id assigned to this object group

CORBA::ORB_var TAO::PG_Object_Group::orb_ [private]
 

PortableGroup::Location TAO::PG_Object_Group::primary_location_ [private]
 

TAO::PG_Property_Set TAO::PG_Object_Group::properties_ [private]
 

PortableGroup::ObjectGroup_var TAO::PG_Object_Group::reference_ [private]
 

the reference (IOGR) to this group

ACE_CString TAO::PG_Object_Group::role_ [private]
 

PortableGroup::TagGroupTaggedComponent TAO::PG_Object_Group::tagged_component_ [private]
 

the GroupTaggedComponent that defines this group contains: GIOP::Version component_version; TAO_String_Manager group_domain_id; PortableGroup::ObjectGroupId object_group_id; PortableGroup::ObjectGroupRefVersion object_group_ref_version;

PortableGroup::TypeId_var TAO::PG_Object_Group::type_id_ [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 16:35:21 2005 for TAO_PortableGroup by  doxygen 1.4.5