diff options
Diffstat (limited to 'TAO/tao/Stub.h')
-rw-r--r-- | TAO/tao/Stub.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/TAO/tao/Stub.h b/TAO/tao/Stub.h index 6694cbe36a2..693ed5fb461 100644 --- a/TAO/tao/Stub.h +++ b/TAO/tao/Stub.h @@ -258,6 +258,9 @@ public: /// Obtain a reference to the basic profile set. TAO_MProfile& base_profiles (void); + /// Obtain a pointer to the forwarded profile set + const TAO_MProfile *forward_profiles (void) const; + // Manage forward and base profiles. /** * THREAD SAFE. If forward_profiles is null then this will @@ -339,6 +342,15 @@ public: /// preferences on selecting the right profiles. CORBA::Boolean service_profile_selection (void); + /** + * Create the IOP::IOR info. We will create the info at most once. + * Get the index of the profile we are using to make the invocation. + */ + int create_ior_info (IOP::IOR *ior_info, + CORBA::ULong &index, + CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)); + private: /// Makes a copy of the profile and frees the existing profile_in_use. /// NOT THREAD SAFE @@ -362,6 +374,12 @@ private: /// NON-THREAD-SAFE. utility method for next_profile. TAO_Profile *next_forward_profile (void); + /// THREAD-SAFE Create the IOR info + int get_profile_ior_info (TAO_MProfile &profile, + IOP::IOR *&ior_info, + CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)); + #if (TAO_HAS_RT_CORBA == 1) private: @@ -438,6 +456,19 @@ private: /// The addressing mode. CORBA::Short addressing_mode_; + /** + * The ior info. This is needed for GIOP 1.2, as the clients could + * receive an exception from the server asking for this info. The + * exception that the client receives is LOC_NEEDS_ADDRESSING_MODE. + * The data is set up here to be passed on to Invocation classes + * when they receive an exception. This info is for the base + * profiles that this class stores + */ + IOP::IOR *ior_info_; + + /// Forwarded IOR info + IOP::IOR *forwarded_ior_info_; + // = Disallow copy constructor and assignment operator. ACE_UNIMPLEMENTED_FUNC (TAO_Stub (const TAO_Stub &)) ACE_UNIMPLEMENTED_FUNC (TAO_Stub &operator = (const TAO_Stub &)) |