
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __javax_net_ssl_SSLSocketFactory__
#define __javax_net_ssl_SSLSocketFactory__

#pragma interface

#include <javax/net/SocketFactory.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace net
    {
        class Socket;
    }
  }
  namespace javax
  {
    namespace net
    {
        class SocketFactory;
      namespace ssl
      {
          class SSLContext;
          class SSLSocketFactory;
      }
    }
  }
}

class javax::net::ssl::SSLSocketFactory : public ::javax::net::SocketFactory
{

public:
  SSLSocketFactory();
  static ::javax::net::SocketFactory * getDefault();
  virtual ::java::net::Socket * createSocket(::java::net::Socket *, ::java::lang::String *, jint, jboolean) = 0;
  virtual JArray< ::java::lang::String * > * getDefaultCipherSuites() = 0;
  virtual JArray< ::java::lang::String * > * getSupportedCipherSuites() = 0;
private:
  static ::javax::net::ssl::SSLContext * context;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_net_ssl_SSLSocketFactory__
