summaryrefslogtreecommitdiff
path: root/TAO/tao/PortableGroup/UIPMC_Profile.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PortableGroup/UIPMC_Profile.h')
-rw-r--r--TAO/tao/PortableGroup/UIPMC_Profile.h28
1 files changed, 23 insertions, 5 deletions
diff --git a/TAO/tao/PortableGroup/UIPMC_Profile.h b/TAO/tao/PortableGroup/UIPMC_Profile.h
index be9f992e1e8..1200704a8cd 100644
--- a/TAO/tao/PortableGroup/UIPMC_Profile.h
+++ b/TAO/tao/PortableGroup/UIPMC_Profile.h
@@ -146,7 +146,10 @@ public:
/// Set the request target specifier to point to a tagged profile
/// containing the GroupId associated with this profile.
- virtual void request_target_specifier (TAO_Target_Specification &target_spec);
+ virtual void request_target_specifier (
+ TAO_Target_Specification &target_spec,
+ TAO_Target_Specification::TAO_Target_Address required_type,
+ CORBA::Environment &ACE_TRY_ENV);
/// Returns true since this profile can specify multicast endpoints.
virtual int supports_multicast (void) const;
@@ -155,15 +158,20 @@ public:
PortableGroup::TagGroupTaggedComponent &group);
/// Add the mandatory group component to this profile.
- int add_group_component (const char *domain_id,
- PortableGroup::ObjectGroupId group_id,
- PortableGroup::ObjectGroupRefVersion ref_version);
+ void set_group_info (const char *domain_id,
+ PortableGroup::ObjectGroupId group_id,
+ PortableGroup::ObjectGroupRefVersion ref_version);
private:
/// Creates an encapsulation of the ProfileBody struct in the <cdr>
void create_profile_body (TAO_OutputCDR &cdr) const;
+ /// Update the group component in the cached list of tagged
+ /// components. This needs to be called whenever the group_domain_id,
+ /// group_id, or ref_version changes.
+ void update_cached_group_component (void);
+
protected:
/**
@@ -193,8 +201,18 @@ private:
/// some of the API calls.
TAO_ObjectKey object_key_;
- /// Our tagged profile
+ /// Cached version of our tagged profile.
IOP::TaggedProfile tagged_profile_;
+
+ /// Group Domain ID.
+ ACE_CString group_domain_id_;
+
+ /// Our group ID within the group domain.
+ PortableGroup::ObjectGroupId group_id_;
+
+ /// The group reference's version.
+ PortableGroup::ObjectGroupRefVersion ref_version_;
+
};
#if defined (__ACE_INLINE__)