summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h
diff options
context:
space:
mode:
authormarina <marina@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-09-16 03:34:02 +0000
committermarina <marina@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-09-16 03:34:02 +0000
commit1dea852cb1b96bd10cb66f814cedc7df83c668e7 (patch)
tree76d5e9e72681aa7315f6bcd6af68e0e7a1059967 /TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h
parentcc7c6c054b39c0a2d662b99b48965f6ebf91a4cf (diff)
downloadATCD-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.h109
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 */