TAO_SSLIOP 4.0.2
Loading...
Searching...
No Matches
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.
 
 TAO_SSLIOP_Profile (TAO_ORB_Core *orb_core, int ssl_only=0)
 
virtual int decode (TAO_InputCDR &cdr)
 
virtual int encode_endpoints ()
 
virtual TAO_Endpointendpoint ()
 
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)
 

Protected Member Functions

 ~TAO_SSLIOP_Profile ()
 Destructor.
 
virtual CORBA::Boolean do_is_equivalent (const TAO_Profile *other_profile)
 Profile equivalence template method.
 

Private Member Functions

int decode_tagged_endpoints ()
 

Private Attributes

TAO_SSLIOP_Endpoint ssl_endpoint_
 
int ssl_only_
 

Constructor & Destructor Documentation

◆ TAO_SSLIOP_Profile() [1/4]

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() [2/4]

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() [3/4]

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() [4/4]

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::~TAO_SSLIOP_Profile ( )
protected

Destructor.

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

Member Function Documentation

◆ add_endpoint()

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.

◆ decode()

int TAO_SSLIOP_Profile::decode ( TAO_InputCDR & cdr)
virtual

◆ decode_tagged_endpoints()

int TAO_SSLIOP_Profile::decode_tagged_endpoints ( )
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.

◆ do_is_equivalent()

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

◆ encode_endpoints()

int TAO_SSLIOP_Profile::encode_endpoints ( )
virtual

◆ endpoint()

TAO_Endpoint * TAO_SSLIOP_Profile::endpoint ( )
virtual

◆ parse_string()

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.

◆ remove_endpoint()

void TAO_SSLIOP_Profile::remove_endpoint ( TAO_SSLIOP_Endpoint * endp)

Remove endp from this profile's list of endpoints.

◆ remove_generic_endpoint()

void TAO_SSLIOP_Profile::remove_generic_endpoint ( TAO_Endpoint * ep)

Member Data Documentation

◆ ssl_endpoint_

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.

◆ ssl_only_

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: