00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef TAO_SSLIOP_CONNECTOR_H
00018 #define TAO_SSLIOP_CONNECTOR_H
00019
00020 #include "ace/pre.h"
00021
00022 #include "ace/config-all.h"
00023
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif
00027
00028 #include "orbsvcs/SSLIOP/IIOP_SSL_Connector.h"
00029 #include "orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h"
00030
00031 #include "ace/SSL/SSL_SOCK_Connector.h"
00032
00033 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00034
00035
00036 class TAO_Base_Transport_Property;
00037
00038 class TAO_SSLIOP_Endpoint;
00039
00040 namespace TAO
00041 {
00042 namespace SSLIOP
00043 {
00044 class OwnCredentials;
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 class Connector : public TAO::IIOP_SSL_Connector
00056 {
00057 public:
00058
00059
00060 Connector (::Security::QOP qop);
00061
00062
00063
00064
00065
00066
00067
00068 virtual int open (TAO_ORB_Core *orb_core);
00069 virtual int close (void);
00070 virtual TAO_Transport *connect (TAO::Profile_Transport_Resolver *r,
00071 TAO_Transport_Descriptor_Interface *desc,
00072 ACE_Time_Value *timeout);
00073
00074 virtual TAO_Profile *create_profile (TAO_InputCDR& cdr);
00075 virtual int check_prefix (const char *endpoint);
00076 virtual TAO_Profile * corbaloc_scan (const char *ior, size_t &len);
00077
00078
00079 protected:
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089 virtual TAO_Profile * make_profile (void);
00090 virtual int cancel_svc_handler (TAO_Connection_Handler * svc_handler);
00091
00092
00093
00094 TAO_Profile * make_secure_profile (void);
00095
00096
00097
00098
00099
00100 TAO_Transport* iiop_connect (TAO_SSLIOP_Endpoint *ssliop_endpoint,
00101 TAO::Profile_Transport_Resolver *r,
00102 ACE_Time_Value *timeout);
00103
00104
00105 TAO_Transport* ssliop_connect (TAO_SSLIOP_Endpoint *ssliop_endpoint,
00106 ::Security::QOP qop,
00107 const ::Security::EstablishTrust &trust,
00108 TAO::Profile_Transport_Resolver *r,
00109 TAO_Transport_Descriptor_Interface *desc,
00110 ACE_Time_Value *timeout);
00111
00112
00113
00114
00115 TAO::SSLIOP::OwnCredentials * retrieve_credentials (TAO_Stub *stub,
00116 SSL *ssl);
00117
00118 public:
00119
00120 typedef TAO_Connect_Concurrency_Strategy<Connection_Handler>
00121 CONNECT_CONCURRENCY_STRATEGY;
00122
00123 typedef TAO_Connect_Creation_Strategy<Connection_Handler>
00124 CONNECT_CREATION_STRATEGY;
00125
00126 typedef ACE_Connect_Strategy<Connection_Handler,
00127 ACE_SSL_SOCK_CONNECTOR>
00128 CONNECT_STRATEGY;
00129
00130 typedef ACE_Strategy_Connector<Connection_Handler,
00131 ACE_SSL_SOCK_CONNECTOR>
00132 BASE_CONNECTOR;
00133
00134 private:
00135
00136
00137
00138 ::Security::QOP qop_;
00139
00140
00141 CONNECT_STRATEGY connect_strategy_;
00142
00143
00144 BASE_CONNECTOR base_connector_;
00145
00146 };
00147
00148 }
00149 }
00150
00151 TAO_END_VERSIONED_NAMESPACE_DECL
00152
00153 #include "ace/post.h"
00154
00155 #endif