summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h104
1 files changed, 69 insertions, 35 deletions
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h
index 910a4694e4f..0d84beed4be 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h
@@ -114,8 +114,12 @@ namespace TAO
/////////////////////
// Construct/Destruct
public:
+ /**
+ * @@TODO DOC
+ */
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,
@@ -131,27 +135,9 @@ namespace TAO
// public methods
public:
-
- /// Set object group id
- void set_object_group_id (PortableGroup::ObjectGroupId oid);
-
- /// Set type ID
- void set_typeid (PortableGroup::TypeId type_id);
-
/// return a duplicated reference to this group (IOGR)
PortableGroup::ObjectGroup_ptr reference()const;
- void set_membership_style (PortableGroup::MembershipStyleValue style);
- PortableGroup::MembershipStyleValue get_membership_style () const;
-
- void set_initial_number_members (PortableGroup::InitialNumberMembersValue count);
- PortableGroup::InitialNumberMembersValue get_initial_number_members () const;
-
- void set_minimum_number_members (PortableGroup::MinimumNumberMembersValue count);
- PortableGroup::MinimumNumberMembersValue get_minimum_number_members ()const;
-
- void set_group_specific_factories (const PortableGroup::FactoryInfos & infos);
-
/**
* Note the caller receives a copy of the factoryinfos in the result argument.
* inefficient, but thread safe.
@@ -161,7 +147,7 @@ namespace TAO
/**
* get location of primary member
*/
- const PortableGroup::Location & primary_location() const;
+ const PortableGroup::Location & get_primary_location() const;
/**
* returns a duplicate
@@ -169,6 +155,27 @@ namespace TAO
*/
PortableGroup::TypeId get_type_id ()const;
+
+ /**
+ * @@TODO DOC
+ */
+ PortableGroup::MembershipStyleValue get_membership_style() const;
+
+ /**
+ * @@TODO DOC
+ */
+ PortableGroup::MinimumNumberMembersValue get_minimum_number_members () const;
+
+ /**
+ * @@TODO DOC
+ */
+ PortableGroup::InitialNumberMembersValue get_initial_number_members () const;
+
+
+
+ /**
+ * @@TODO DOC
+ */
void set_properties_dynamically (
const PortableGroup::Properties & overrides
ACE_ENV_ARG_DECL)
@@ -176,9 +183,15 @@ namespace TAO
PortableGroup::InvalidProperty,
PortableGroup::UnsupportedProperty));
+ /**
+ * @@TODO DOC
+ */
void get_properties (PortableGroup::Properties_var & result) const
ACE_THROW_SPEC ((CORBA::SystemException));
+ /**
+ * @@TODO DOC
+ */
PortableGroup::ObjectGroupId get_object_group_id () const;
/**
@@ -209,6 +222,9 @@ namespace TAO
, PortableGroup::MemberNotFound
));
+ /**
+ * @@TODO DOC
+ */
void remove_member (
const PortableGroup::Location & the_location
ACE_ENV_ARG_DECL)
@@ -216,6 +232,9 @@ namespace TAO
PortableGroup::MemberNotFound));
+ /**
+ * @@TODO DOC
+ */
void create_member (
const PortableGroup::Location & the_location,
const char * type_id,
@@ -228,17 +247,34 @@ namespace TAO
PortableGroup::InvalidCriteria,
PortableGroup::CannotMeetCriteria));
+ /**
+ * @@TODO DOC
+ */
PortableGroup::Locations * locations_of_members (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
+ /**
+ * @@TODO DOC
+ */
CORBA::Object_ptr get_member_reference (
const PortableGroup::Location & the_location
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException,
- PortableGroup::ObjectGroupNotFound,
PortableGroup::MemberNotFound));
+
+ /**
+ * @@TODO DOC
+ */
+ void initial_populate (ACE_ENV_SINGLE_ARG_DECL);
+
+ /**
+ * @@TODO DOC
+ */
+ void minimum_populate (ACE_ENV_SINGLE_ARG_DECL);
+
+
/////////////////////////
// Implementation methods
private:
@@ -246,6 +282,13 @@ namespace TAO
int increment_version ();
void distribute_iogr (ACE_ENV_ARG_DECL);
+ void create_members (size_t count ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ PortableGroup::NoFactory
+ ));
+
+
/////////////////////////
// Forbidden methods
private:
@@ -257,19 +300,7 @@ namespace TAO
/////////////////
// Static Methods
public:
-#if 0
- /**
- * Static creation method needed because exceptions can happen.
- */
- static PG_Object_Group * create (
- CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa,
- CORBA::Object_ptr empty_group, // empty group as created by ObjectManager
- const char * type_id,
- const PortableGroup::Criteria & the_criteria,
- TAO_PG::Properties_Decoder * type_properties
- ACE_ENV_ARG_DECL);
-#endif
+
///////////////
// Static Data
private:
@@ -286,6 +317,10 @@ namespace TAO
CORBA::ORB_var orb_;
+ /// Where to find the factories for replicas.
+ PortableGroup::FactoryRegistry_var factory_registry_;
+
+
// The object group manipulator
TAO::PG_Object_Group_Manipulator & manipulator_;
@@ -293,7 +328,7 @@ namespace TAO
int empty_;
ACE_CString role_;
- PortableGroup::TypeId type_id_;
+ PortableGroup::TypeId_var type_id_;
/**
* the GroupTaggedComponent that defines this group
@@ -326,7 +361,6 @@ namespace TAO
// Cached property information
- PortableGroup::MembershipStyleValue membership_style_;
PortableGroup::InitialNumberMembersValue initial_number_members_;
PortableGroup::MinimumNumberMembersValue minimum_number_members_;
PortableGroup::FactoryInfos group_specific_factories_;