TAO_SSLIOP  2.4.0
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
TAO_SSLIOP_Profile Class Reference

#include <SSLIOP_Profile.h>

Inheritance diagram for TAO_SSLIOP_Profile:
Inheritance graph
[legend]
Collaboration diagram for TAO_SSLIOP_Profile:
Collaboration graph
[legend]

Public Member Functions

 TAO_SSLIOP_Profile (const ACE_INET_Addr &addr, const TAO::ObjectKey &object_key, const TAO_GIOP_Message_Version &version, TAO_ORB_Core *orb_core, const ::SSLIOP::SSL *ssl_component)
 
 TAO_SSLIOP_Profile (const char *host, CORBA::UShort port, const TAO::ObjectKey &object_key, const ACE_INET_Addr &addr, const TAO_GIOP_Message_Version &version, TAO_ORB_Core *orb_core, const ::SSLIOP::SSL *ssl_component)
 
 TAO_SSLIOP_Profile (TAO_ORB_Core *orb_core, const ::SSLIOP::SSL *ssl_component)
 Create profile with the given SSLIOP tagged component. More...
 
 TAO_SSLIOP_Profile (TAO_ORB_Core *orb_core, int ssl_only=0)
 
virtual int decode (TAO_InputCDR &cdr)
 
virtual int encode_endpoints (void)
 
virtual TAO_Endpointendpoint (void)
 
virtual void parse_string (const char *string)
 
void add_endpoint (TAO_SSLIOP_Endpoint *endp)
 
void remove_endpoint (TAO_SSLIOP_Endpoint *endp)
 
void remove_generic_endpoint (TAO_Endpoint *ep)
 
- Public Member Functions inherited from TAO_IIOP_Profile
 TAO_IIOP_Profile (const ACE_INET_Addr &addr, const TAO::ObjectKey &object_key, const TAO_GIOP_Message_Version &version, TAO_ORB_Core *orb_core)
 
 TAO_IIOP_Profile (const char *host, CORBA::UShort port, const TAO::ObjectKey &object_key, const ACE_INET_Addr &addr, const TAO_GIOP_Message_Version &version, TAO_ORB_Core *orb_core)
 
 TAO_IIOP_Profile (TAO_ORB_Core *orb_core)
 
void add_endpoint (TAO_IIOP_Endpoint *endp)
 
void remove_endpoint (TAO_IIOP_Endpoint *endp)
 
virtual void add_generic_endpoint (TAO_Endpoint *ep)
 
virtual char object_key_delimiter (void) const
 
virtual char * to_string (void) const
 
virtual int encode_alternate_endpoints (void)
 
virtual TAO_Endpointbase_endpoint (void)
 
virtual CORBA::ULong endpoint_count (void) const
 
virtual CORBA::ULong hash (CORBA::ULong max)
 
- Public Member Functions inherited from TAO_Profile
 TAO_Profile (CORBA::ULong tag, TAO_ORB_Core *orb_core, const TAO_GIOP_Message_Version &version)
 
CORBA::ULong tag (void) const
 
const TAO_GIOP_Message_Versionversion (void) const
 
TAO_ORB_Coreorb_core (void) const
 
unsigned long _incr_refcnt (void)
 
unsigned long _decr_refcnt (void)
 
void forward_to (TAO_MProfile *mprofiles)
 
TAO_MProfileforward_to (void)
 
const TAO_Tagged_Componentstagged_components (void) const
 
TAO_Tagged_Componentstagged_components (void)
 
void add_tagged_component (const IOP::TaggedComponent &component)
 
CORBA::Short addressing_mode (void) const
 
const TAO::ObjectKeyobject_key (void) const
 
TAO::ObjectKey_key (void) const
 
virtual int encode (TAO_OutputCDR &stream) const
 
IOP::TaggedProfilecreate_tagged_profile (void)
 
virtual void policies (CORBA::PolicyList *policy_list)
 
virtual void get_policies (CORBA::PolicyList &policy_list)
 
virtual int supports_multicast (void) const
 
virtual bool supports_non_blocking_oneways (void) const
 
virtual void addressing_mode (CORBA::Short addr_mode)
 
TAO_Endpointfirst_filtered_endpoint (void)
 
TAO_Endpointnext_filtered_endpoint (TAO_Endpoint *source)
 
CORBA::Boolean is_equivalent (const TAO_Profile *other_profile)
 
CORBA::Boolean compare_key (const TAO_Profile *other) const
 
CORBA::ULong tag (void) const
 
const TAO_GIOP_Message_Versionversion (void) const
 
TAO_ORB_Coreorb_core (void) const
 
unsigned long _incr_refcnt (void)
 
unsigned long _decr_refcnt (void)
 
void forward_to (TAO_MProfile *mprofiles)
 
TAO_MProfileforward_to (void)
 
const TAO_Tagged_Componentstagged_components (void) const
 
TAO_Tagged_Componentstagged_components (void)
 
void add_tagged_component (const IOP::TaggedComponent &component)
 
CORBA::Short addressing_mode (void) const
 
const TAO::ObjectKeyobject_key (void) const
 
TAO::ObjectKey_key (void) const
 
virtual int encode (TAO_OutputCDR &stream) const
 
IOP::TaggedProfilecreate_tagged_profile (void)
 
virtual void policies (CORBA::PolicyList *policy_list)
 
virtual void get_policies (CORBA::PolicyList &policy_list)
 
virtual int supports_multicast (void) const
 
virtual bool supports_non_blocking_oneways (void) const
 
virtual void addressing_mode (CORBA::Short addr_mode)
 
TAO_Endpointfirst_filtered_endpoint (void)
 
TAO_Endpointnext_filtered_endpoint (TAO_Endpoint *source)
 
CORBA::Boolean is_equivalent (const TAO_Profile *other_profile)
 
CORBA::Boolean compare_key (const TAO_Profile *other) const
 

Protected Member Functions

 ~TAO_SSLIOP_Profile (void)
 Destructor. More...
 
virtual CORBA::Boolean do_is_equivalent (const TAO_Profile *other_profile)
 Profile equivalence template method. More...
 
- Protected Member Functions inherited from TAO_IIOP_Profile
 ~TAO_IIOP_Profile (void)
 
int encode_endpoints_for_rt (void)
 
virtual int decode_profile (TAO_InputCDR &cdr)
 
virtual int decode_endpoints (void)
 
virtual void parse_string_i (const char *string)
 
virtual void create_profile_body (TAO_OutputCDR &cdr) const
 
- Protected Member Functions inherited from TAO_Profile
virtual ~TAO_Profile (void)
 
 TAO_Profile (CORBA::ULong tag, TAO_ORB_Core *orb_core, const TAO::ObjectKey &key, const TAO_GIOP_Message_Version &version)
 
void set_tagged_components (TAO_OutputCDR &cdr)
 
virtual TAO_Service_Callbacks::Profile_Equivalence is_equivalent_hook (const TAO_Profile *other)
 
CORBA::ULong hash_service_i (CORBA::ULong m)
 

Private Member Functions

int decode_tagged_endpoints (void)
 

Private Attributes

TAO_SSLIOP_Endpoint ssl_endpoint_
 
int ssl_only_
 

Additional Inherited Members

- Static Public Member Functions inherited from TAO_IIOP_Profile
static const char * prefix (void)
 
- Static Public Attributes inherited from TAO_IIOP_Profile
static const char object_key_delimiter_
 
- Protected Attributes inherited from TAO_IIOP_Profile
TAO_IIOP_Endpoint endpoint_
 
TAO_IIOP_Endpointlast_endpoint_
 
CORBA::ULong count_
 
- Protected Attributes inherited from TAO_Profile
TAO_GIOP_Message_Version version_
 
TAO_Tagged_Components tagged_components_
 
CORBA::Boolean are_policies_parsed_
 
CORBA::Short addressing_mode_
 
IOP::TaggedProfiletagged_profile_
 
TAO::Refcounted_ObjectKeyref_object_key_
 

Constructor & Destructor Documentation

TAO_SSLIOP_Profile::TAO_SSLIOP_Profile ( const ACE_INET_Addr addr,
const TAO::ObjectKey object_key,
const TAO_GIOP_Message_Version version,
TAO_ORB_Core orb_core,
const ::SSLIOP::SSL ssl_component 
)

Profile constructor, same as above except the object_key has already been marshaled.

TAO_SSLIOP_Profile::TAO_SSLIOP_Profile ( const char *  host,
CORBA::UShort  port,
const TAO::ObjectKey object_key,
const ACE_INET_Addr addr,
const TAO_GIOP_Message_Version version,
TAO_ORB_Core orb_core,
const ::SSLIOP::SSL ssl_component 
)

Profile constructor, this is the most efficient since it doesn't require any address resolution processing.

TAO_SSLIOP_Profile::TAO_SSLIOP_Profile ( TAO_ORB_Core orb_core,
const ::SSLIOP::SSL ssl_component 
)

Create profile with the given SSLIOP tagged component.

TAO_SSLIOP_Profile::TAO_SSLIOP_Profile ( TAO_ORB_Core orb_core,
int  ssl_only = 0 
)

Profile constructor. ssl_only != 0 will force secure connections, pnly.

TAO_SSLIOP_Profile::~TAO_SSLIOP_Profile ( void  )
protected

Destructor.

Protected destructor to enforce proper memory management through the reference counting mechanism.

Member Function Documentation

void TAO_SSLIOP_Profile::add_endpoint ( TAO_SSLIOP_Endpoint endp)

Add endp to this profile's list of endpoints (it is inserted next to the head of the list). This profiles takes ownership of endp. If endp's iiop_endpoint_ member is not 0, it is added to our parent's class endpoint list.

int TAO_SSLIOP_Profile::decode ( TAO_InputCDR cdr)
virtual

Reimplemented from TAO_Profile.

int TAO_SSLIOP_Profile::decode_tagged_endpoints ( void  )
private

Helper for decode. Decodes TAO_TAG_SSL_ENDPOINTS from a tagged component. Decode only if RTCORBA is enabled.

Returns
0 on success and -1 on failure.
Note
This should be enabled only when RTCORBA is enabled, but sadly others pay the price (of footprint) under normal operations.
CORBA::Boolean TAO_SSLIOP_Profile::do_is_equivalent ( const TAO_Profile other_profile)
protectedvirtual

Profile equivalence template method.

See also
TAO_Profile::do_is_equivalent()

Reimplemented from TAO_IIOP_Profile.

int TAO_SSLIOP_Profile::encode_endpoints ( void  )
virtual

Reimplemented from TAO_IIOP_Profile.

TAO_Endpoint * TAO_SSLIOP_Profile::endpoint ( void  )
virtual

Reimplemented from TAO_IIOP_Profile.

void TAO_SSLIOP_Profile::parse_string ( const char *  string)
virtual

Override parse_string() from the base class to update the SSL endpoint's iiop endpoint once the base class has completed parsing the string.

Initialize this object using the given input string. URL-style string contain only one endpoint.

Reimplemented from TAO_Profile.

void TAO_SSLIOP_Profile::remove_endpoint ( TAO_SSLIOP_Endpoint endp)

Remove endp from this profile's list of endpoints.

void TAO_SSLIOP_Profile::remove_generic_endpoint ( TAO_Endpoint ep)
virtual

Reimplemented from TAO_IIOP_Profile.

Member Data Documentation

TAO_SSLIOP_Endpoint TAO_SSLIOP_Profile::ssl_endpoint_
private

Head of this profile's list of endpoints. This endpoint is not dynamically allocated because a profile always contains at least one endpoint.

Currently, a profile contains more than one endpoint, i.e., list contains more than just the head, only when RTCORBA is enabled. However, in the near future, this will be used in non-RT mode as well, e.g., to support TAG_ALTERNATE_IIOP_ADDRESS feature.
Since SSLIOP profile is an extension of IIOP profile, its addressing info is contained in two places: IIOP parent class contains all iiop addressing while this class contains SSL-specific addressing additions to iiop. This means that there are two lists of endpoints: one maintained in the parent class and one maintained here. Each ssl endpoint maintains a pointer to its counterpart in the parent class endpoint list.
For transmission of IIOP addressing information, see TAO_IIOP_Profile. Addressing info of the default SSL endpoint, i.e., head of the list, is transmitted using standard SSLIOP::TAG_SSL_SEC_TRANS tagged component. See encode_endpoints method documentation above for how the rest of the SSL endpoint list is transmitted.
int TAO_SSLIOP_Profile::ssl_only_
private

Allways treat this endpoint as secure, even if the constructor did not explicitely specify a tagged component for SSL.

Most likely the parse_string() will supply a subset of the attributes - port number, for instance.

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