TAO_SSLIOP  2.0.8
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
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]

List of all members.

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

Protected Member Functions

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

Private Member Functions

int decode_tagged_endpoints (void)

Private Attributes

TAO_SSLIOP_Endpoint ssl_endpoint_
int ssl_only_

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) [protected, virtual]

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

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.

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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines