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 ACE_ENV_ARG_DECL);
00074
00075 virtual TAO_Profile *create_profile (TAO_InputCDR& cdr);
00076 virtual int check_prefix (const char *endpoint);
00077 virtual TAO_Profile * corbaloc_scan (const char *ior,
00078 size_t &len
00079 ACE_ENV_ARG_DECL);
00080
00081
00082
00083 protected:
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093 virtual TAO_Profile * make_profile (ACE_ENV_SINGLE_ARG_DECL);
00094 virtual int cancel_svc_handler (TAO_Connection_Handler * svc_handler);
00095
00096
00097
00098 TAO_Profile * make_secure_profile (ACE_ENV_SINGLE_ARG_DECL);
00099
00100
00101
00102
00103
00104 TAO_Transport* iiop_connect (TAO_SSLIOP_Endpoint *ssliop_endpoint,
00105 TAO::Profile_Transport_Resolver *r,
00106 ACE_Time_Value *timeout
00107 ACE_ENV_ARG_DECL);
00108
00109
00110 TAO_Transport* ssliop_connect (TAO_SSLIOP_Endpoint *ssliop_endpoint,
00111 ::Security::QOP qop,
00112 const ::Security::EstablishTrust &trust,
00113 TAO::Profile_Transport_Resolver *r,
00114 TAO_Transport_Descriptor_Interface *desc,
00115 ACE_Time_Value *timeout
00116 ACE_ENV_ARG_DECL);
00117
00118
00119
00120
00121 TAO::SSLIOP::OwnCredentials * retrieve_credentials (TAO_Stub *stub,
00122 SSL *ssl
00123 ACE_ENV_ARG_DECL);
00124
00125 public:
00126
00127 typedef TAO_Connect_Concurrency_Strategy<Connection_Handler>
00128 CONNECT_CONCURRENCY_STRATEGY;
00129
00130 typedef TAO_Connect_Creation_Strategy<Connection_Handler>
00131 CONNECT_CREATION_STRATEGY;
00132
00133 typedef ACE_Connect_Strategy<Connection_Handler,
00134 ACE_SSL_SOCK_CONNECTOR>
00135 CONNECT_STRATEGY;
00136
00137 typedef ACE_Strategy_Connector<Connection_Handler,
00138 ACE_SSL_SOCK_CONNECTOR>
00139 BASE_CONNECTOR;
00140
00141 private:
00142
00143
00144
00145 ::Security::QOP qop_;
00146
00147
00148 CONNECT_STRATEGY connect_strategy_;
00149
00150
00151 BASE_CONNECTOR base_connector_;
00152
00153 };
00154
00155 }
00156 }
00157
00158 TAO_END_VERSIONED_NAMESPACE_DECL
00159
00160 #include "ace/post.h"
00161
00162 #endif