00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file IIOP_SSL_Connector.h 00006 * 00007 * IIOP_SSL_Connector.h,v 1.20 2006/03/14 06:14:35 jtc Exp 00008 * 00009 * IIOP specific connector processing -- SSL aware version 00010 * 00011 * @author Ossama Othman <ossama@uci.edu> 00012 */ 00013 //============================================================================= 00014 00015 00016 #ifndef TAO_IIOP_SSL_CONNECTOR_H 00017 #define TAO_IIOP_SSL_CONNECTOR_H 00018 00019 #include /**/ "ace/pre.h" 00020 00021 #include "orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.h" 00022 00023 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00024 # pragma once 00025 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00026 00027 #include "tao/IIOP_Connector.h" 00028 00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00030 00031 namespace TAO 00032 { 00033 /** 00034 * @class IIOP_SSL_Connector 00035 * 00036 * @brief IIOP-specific Connector (SSL aware) bridge for pluggable 00037 * protocols. 00038 * 00039 * Concrete instance of the TAO_Connector class. Responsible 00040 * for establishing a connection with a server and is called from the 00041 * Connector_Registry. 00042 */ 00043 class IIOP_SSL_Connector : public TAO_IIOP_Connector 00044 { 00045 public: 00046 00047 /// Constructor. 00048 IIOP_SSL_Connector (CORBA::Boolean flag = 0); 00049 00050 /// Destructor. 00051 ~IIOP_SSL_Connector (void); 00052 00053 int open (TAO_ORB_Core *orb_core); 00054 int close (void); 00055 00056 public: 00057 00058 typedef TAO_Connect_Concurrency_Strategy<IIOP_SSL_Connection_Handler> 00059 CONNECT_CONCURRENCY_STRATEGY; 00060 00061 typedef TAO_Connect_Creation_Strategy<IIOP_SSL_Connection_Handler> 00062 CONNECT_CREATION_STRATEGY; 00063 00064 typedef ACE_Connect_Strategy<IIOP_SSL_Connection_Handler, 00065 ACE_SOCK_CONNECTOR> 00066 CONNECT_STRATEGY ; 00067 00068 typedef ACE_Strategy_Connector<IIOP_SSL_Connection_Handler, 00069 ACE_SOCK_CONNECTOR> 00070 BASE_CONNECTOR; 00071 00072 protected: 00073 00074 /** 00075 * @name The TAO_Connector Methods 00076 * 00077 * Check the documentation in tao/Transport_Connector.h for details. 00078 */ 00079 //@{ 00080 int set_validate_endpoint (TAO_Endpoint *ep); 00081 00082 TAO_Transport *make_connection (TAO::Profile_Transport_Resolver *r, 00083 TAO_Transport_Descriptor_Interface &desc, 00084 ACE_Time_Value *timeout = 0); 00085 00086 virtual int cancel_svc_handler (TAO_Connection_Handler * svc_handler); 00087 //@} 00088 00089 private: 00090 00091 /// Our connect strategy 00092 CONNECT_STRATEGY connect_strategy_; 00093 00094 /// The connector initiating connection requests for IIOP_SSL. 00095 BASE_CONNECTOR base_connector_; 00096 }; 00097 00098 } // End TAO namespace. 00099 00100 TAO_END_VERSIONED_NAMESPACE_DECL 00101 00102 #include /**/ "ace/post.h" 00103 00104 #endif /* TAO_IIOP_SSL_CONNECTOR_H */