diff options
author | marina <marina@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-09-16 03:34:02 +0000 |
---|---|---|
committer | marina <marina@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-09-16 03:34:02 +0000 |
commit | 1dea852cb1b96bd10cb66f814cedc7df83c668e7 (patch) | |
tree | 76d5e9e72681aa7315f6bcd6af68e0e7a1059967 /TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h | |
parent | cc7c6c054b39c0a2d662b99b48965f6ebf91a4cf (diff) | |
download | ATCD-1dea852cb1b96bd10cb66f814cedc7df83c668e7.tar.gz |
ChangeLogTag:Fri Sep 15 20:39:49 2000 Marina Spivak <marina@cs.wustl.edu>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h new file mode 100644 index 00000000000..8cad4986df7 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h @@ -0,0 +1,109 @@ +// This may look like C, but it's really -*- C++ -*- +// $Id$ + + +// ============================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// SSLIOP_Endpoint.h +// +// = AUTHOR +// Marina Spivak <marina@cs.wustl.edu> +// +// ============================================================================ + +#ifndef TAO_SSLIOP_ENDPOINT_H +#define TAO_SSLIOP_ENDPOINT_H + +#include "ace/pre.h" + +#include "tao/Endpoint.h" + +#if defined (ACE_HAS_SSL) && ACE_HAS_SSL == 1 + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/ORB.h" +#include "SSLIOP_Export.h" +#include "orbsvcs/SSLIOPC.h" + +class TAO_SSLIOP_Client_Connection_Handler; +class TAO_IIOP_Endpoint; + +class TAO_SSLIOP_Export TAO_SSLIOP_Endpoint : public TAO_Endpoint +{ + // = TITLE + // This class defines the protocol specific attributes required + // for locating ORBs over a TCP/IP network. + // + // = DESCRIPTION + // This class defines the IIOP profile as specified in the CORBA + // specification. +public: + + friend class TAO_SSLIOP_Profile; + + TAO_SSLIOP_Endpoint (u_short ssl_port, + TAO_IIOP_Endpoint *iiop_endp); + // Endpoint constructor, default. + + ~TAO_SSLIOP_Endpoint (void); + // Destructor is to be called only through <_decr_refcnt>. + + // = Abstract Endpoint interface methods. + + TAO_Endpoint *next (void); + // Return the next endpoint in the list. + + virtual int addr_to_string (char *buffer, size_t length); + // Return a string representation for the address. + + virtual void reset_hint (void); + // Reset the hint's value. + + // = SSLIOP Endpoint methods. + + TAO_IIOP_Endpoint *iiop_endpoint (void) const; + // Accessor to our IIOP counterpart. + + CORBA::Boolean is_equivalent (const TAO_SSLIOP_Endpoint *other_endpoint); + // Return true if this profile is equivalent to other_profile. Two + // profiles are equivalent iff their key, port, host, object_key and + // version are the same. + + CORBA::UShort ssl_port (void) const; + // The port used for SSL communication. + + TAO_SSLIOP_Client_Connection_Handler *&ssl_hint (void); + // This is a hint for which connection handler to use. + +private: + + SSLIOP::SSL ssl_component_; + // Cache the SSL tagged component in a decoded format. Notice that + // we do not need to marshal this object! + + TAO_SSLIOP_Client_Connection_Handler *ssl_hint_; + // Pointer to a connection handler which we successfully used + // already. + + TAO_SSLIOP_Endpoint *next_; + // Next endpoint in the list. + + TAO_IIOP_Endpoint *iiop_endpoint_; + // +}; + +#if defined (__ACE_INLINE__) +#include "SSLIOP_Endpoint.i" +#endif /* __ACE_INLINE__ */ + +#endif /* ACE_HAS_SSL */ + +#include "ace/post.h" +#endif /* TAO_SSLIOP_ENDPOINT_H */ |