00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_NET_SSL_SSLSOCKETFACTORY_H_
00019 #define _DECAF_NET_SSL_SSLSOCKETFACTORY_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <decaf/net/SocketFactory.h>
00024
00025 #include <vector>
00026 #include <string>
00027
00028 namespace decaf {
00029 namespace net {
00030 namespace ssl {
00031
00037 class DECAF_API SSLSocketFactory : public SocketFactory {
00038 private:
00039
00040 static SocketFactory* defaultSocketFactory;
00041
00042 protected:
00043
00044 SSLSocketFactory();
00045
00046 public:
00047
00048 virtual ~SSLSocketFactory();
00049
00061 static SocketFactory* getDefault();
00062
00073 virtual std::vector<std::string> getDefaultCipherSuites() = 0;
00074
00085 virtual std::vector<std::string> getSupportedCipherSuites() = 0;
00086
00107 virtual Socket* createSocket( Socket* socket, std::string host, int port, bool autoClose ) = 0;
00108
00109 };
00110
00111 }}}
00112
00113 #endif