TAO_PortableGroup  2.2.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
TAO::PG_Object_Group Class Reference

#include <PG_Object_Group.h>

Inheritance diagram for TAO::PG_Object_Group:
Inheritance graph
Collaboration diagram for TAO::PG_Object_Group:
Collaboration graph

Classes

struct  MemberInfo
 

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, const TAO::PG_Property_Set_var &type_properties)
 
 PG_Object_Group (CORBA::ORB_ptr orb, PortableGroup::FactoryRegistry_ptr factory_registry, TAO::PG_Object_Group_Manipulator &manipulator)
 
virtual ~PG_Object_Group ()
 Destructor. More...
 
PortableGroup::ObjectGroup_ptr reference () const
 return a duplicated reference to this group (IOGR) More...
 
void get_group_specific_factories (PortableGroup::FactoryInfos &result) const
 
virtual const
PortableGroup::Location
get_primary_location ()
 
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)
 
void get_properties (PortableGroup::Properties_var &result) const
 
virtual
PortableGroup::ObjectGroupId 
get_object_group_id () const
 
virtual void add_member (const PortableGroup::Location &the_location, CORBA::Object_ptr member)
 
virtual int set_primary_member (TAO_IOP::TAO_IOR_Property *prop, const PortableGroup::Location &the_location)
 
virtual void remove_member (const PortableGroup::Location &the_location)
 
virtual void create_member (const PortableGroup::Location &the_location, const char *type_id, const PortableGroup::Criteria &the_criteria)
 
virtual PortableGroup::Locationslocations_of_members (void)
 
virtual CORBA::Object_ptr get_member_reference (const PortableGroup::Location &the_location)
 
virtual void initial_populate (void)
 
virtual void minimum_populate (void)
 
virtual int has_member_at (const PortableGroup::Location &location)
 
virtual void distribute (int value)
 
virtual void set_name (const char *group_name)
 
virtual const char * get_name (void)
 

Protected 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
 

Protected Member Functions

virtual
PortableGroup::ObjectGroup_ptr 
add_member_to_iogr (CORBA::Object_ptr member)
 
void clear_members_map (void)
 

Protected Attributes

CORBA::ORB_var orb_
 
TAO::PG_Object_Group_Manipulatormanipulator_
 
int distribute_
 boolean true if updates should be distributed More...
 
int empty_
 boolean true if empty group More...
 
ACE_CString role_
 
PortableGroup::TypeId_var type_id_
 
PortableGroup::TagGroupTaggedComponent tagged_component_
 
PortableGroup::ObjectGroup_var reference_
 
PortableServer::ObjectId_var object_id_
 
char * group_name_
 
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_
 

Private Member Functions

int increment_version ()
 
void distribute_iogr (void)
 
void create_members (size_t count)
 
 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_
 
PortableGroup::FactoryRegistry_var factory_registry_
 Where to find the factories for replicas. More...
 

Member Typedef Documentation

typedef ACE_Hash_Map_Entry<PortableGroup::Location, MemberInfo *> TAO::PG_Object_Group::MemberMap_Entry
protected
typedef TAO_SYNCH_MUTEX TAO::PG_Object_Group::MemberMapMutex
protected

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,
const TAO::PG_Property_Set_var &  type_properties 
)

@TODO DOC

TAO::PG_Object_Group::PG_Object_Group ( CORBA::ORB_ptr  orb,
PortableGroup::FactoryRegistry_ptr  factory_registry,
TAO::PG_Object_Group_Manipulator manipulator 
)

This constructor is to be used for initialization when reading the object group from a stream.

TAO::PG_Object_Group::~PG_Object_Group ( void  )
virtual

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 
)
virtual

Add a new member to the group.

Parameters
the_locationthe location for the new member
memberthe member to be added

Reimplemented in TAO::PG_Object_Group_Storable.

PortableGroup::ObjectGroup_ptr TAO::PG_Object_Group::add_member_to_iogr ( CORBA::Object_ptr  member)
protectedvirtual
void TAO::PG_Object_Group::clear_members_map ( void  )
protected
void TAO::PG_Object_Group::create_member ( const PortableGroup::Location the_location,
const char *  type_id,
const PortableGroup::Criteria the_criteria 
)
virtual

@TODO DOC

Reimplemented in TAO::PG_Object_Group_Storable.

void TAO::PG_Object_Group::create_members ( size_t  count)
private
void TAO::PG_Object_Group::distribute ( int  value)
virtual

Tell the object group that it should distribute updates to the object group state.

Reimplemented in TAO::PG_Object_Group_Storable.

void TAO::PG_Object_Group::distribute_iogr ( void  )
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 ( void  ) const

@TODO DOC

CORBA::Object_ptr TAO::PG_Object_Group::get_member_reference ( const PortableGroup::Location the_location)
virtual

@TODO DOC

Reimplemented in TAO::PG_Object_Group_Storable.

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

@TODO DOC

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

@TODO DOC

const char * TAO::PG_Object_Group::get_name ( void  )
virtual

Reimplemented in TAO::PG_Object_Group_Storable.

PortableGroup::ObjectGroupId TAO::PG_Object_Group::get_object_group_id ( void  ) const
virtual

@TODO DOC

Reimplemented in TAO::PG_Object_Group_Storable.

const PortableGroup::Location & TAO::PG_Object_Group::get_primary_location ( void  )
virtual

get location of primary member

Reimplemented in TAO::PG_Object_Group_Storable.

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

@TODO DOC

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

returns a duplicate caller must release

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

@TODO DOC

Reimplemented in TAO::PG_Object_Group_Storable.

int TAO::PG_Object_Group::increment_version ( void  )
private
void TAO::PG_Object_Group::initial_populate ( void  )
virtual

@TODO DOC

Reimplemented in TAO::PG_Object_Group_Storable.

PortableGroup::Locations * TAO::PG_Object_Group::locations_of_members ( void  )
virtual

@TODO DOC

Reimplemented in TAO::PG_Object_Group_Storable.

void TAO::PG_Object_Group::minimum_populate ( void  )
virtual

@TODO DOC

Reimplemented in TAO::PG_Object_Group_Storable.

PG_Object_Group& TAO::PG_Object_Group::operator= ( const PG_Object_Group rhs)
private
PortableGroup::ObjectGroup_ptr TAO::PG_Object_Group::reference ( void  ) const

return a duplicated reference to this group (IOGR)

void TAO::PG_Object_Group::remove_member ( const PortableGroup::Location the_location)
virtual

@TODO DOC

Reimplemented in TAO::PG_Object_Group_Storable.

void TAO::PG_Object_Group::set_name ( const char *  group_name)
virtual

Reimplemented in TAO::PG_Object_Group_Storable.

int TAO::PG_Object_Group::set_primary_member ( TAO_IOP::TAO_IOR_Property *  prop,
const PortableGroup::Location the_location 
)
virtual

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.

Reimplemented in TAO::PG_Object_Group_Storable.

void TAO::PG_Object_Group::set_properties_dynamically ( const PortableGroup::Properties overrides)

@TODO DOC

Member Data Documentation

int TAO::PG_Object_Group::distribute_
protected

boolean true if updates should be distributed

int TAO::PG_Object_Group::empty_
protected

boolean true if empty group

PortableGroup::FactoryRegistry_var TAO::PG_Object_Group::factory_registry_
private

Where to find the factories for replicas.

char* TAO::PG_Object_Group::group_name_
protected

an optional attribute of the object group which is a string name that is assigned to the object group by the creator.

PortableGroup::FactoryInfos TAO::PG_Object_Group::group_specific_factories_
protected
PortableGroup::InitialNumberMembersValue TAO::PG_Object_Group::initial_number_members_
protected
TAO_SYNCH_MUTEX TAO::PG_Object_Group::internals_
mutableprivate

Protect internal state.

TAO::PG_Object_Group_Manipulator& TAO::PG_Object_Group::manipulator_
protected
MemberMap TAO::PG_Object_Group::members_
protected
PortableGroup::MinimumNumberMembersValue TAO::PG_Object_Group::minimum_number_members_
protected
PortableServer::ObjectId_var TAO::PG_Object_Group::object_id_
protected

The CORBA object id assigned to this object group

CORBA::ORB_var TAO::PG_Object_Group::orb_
protected
PortableGroup::Location TAO::PG_Object_Group::primary_location_
protected
TAO::PG_Property_Set TAO::PG_Object_Group::properties_
protected
PortableGroup::ObjectGroup_var TAO::PG_Object_Group::reference_
protected

the reference (IOGR) to this group

ACE_CString TAO::PG_Object_Group::role_
protected
PortableGroup::TagGroupTaggedComponent TAO::PG_Object_Group::tagged_component_
protected

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_
protected

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