00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_INTERNAL_NET_SSL_DEFAULTSSLSOCKETFACTORY_H_
00019 #define _DECAF_INTERNAL_NET_SSL_DEFAULTSSLSOCKETFACTORY_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <decaf/net/ssl/SSLSocketFactory.h>
00024
00025 #include <string>
00026 #include <vector>
00027
00028 namespace decaf {
00029 namespace internal {
00030 namespace net {
00031 namespace ssl {
00032
00040 class DECAF_API DefaultSSLSocketFactory : public decaf::net::ssl::SSLSocketFactory {
00041 private:
00042
00043 std::string errorMessage;
00044
00045 public:
00046
00047 DefaultSSLSocketFactory( const std::string& errorMessage );
00048
00049 virtual ~DefaultSSLSocketFactory();
00050
00054 virtual decaf::net::Socket* createSocket();
00055
00059 virtual decaf::net::Socket* createSocket( const decaf::net::InetAddress* host, int port );
00060
00064 virtual decaf::net::Socket* createSocket( const decaf::net::InetAddress* host, int port,
00065 const decaf::net::InetAddress* ifAddress, int localPort );
00066
00070 virtual decaf::net::Socket* createSocket( const std::string& name, int port );
00071
00075 virtual decaf::net::Socket* createSocket( const std::string& name, int port,
00076 const decaf::net::InetAddress* ifAddress, int localPort );
00077
00081 virtual std::vector<std::string> getDefaultCipherSuites();
00082
00086 virtual std::vector<std::string> getSupportedCipherSuites();
00087
00091 virtual decaf::net::Socket* createSocket( decaf::net::Socket* socket, std::string host, int port, bool autoClose );
00092
00093 };
00094
00095 }}}}
00096
00097 #endif