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

#ifndef __javax_net_VanillaServerSocketFactory__
#define __javax_net_VanillaServerSocketFactory__

#pragma interface

#include <javax/net/ServerSocketFactory.h>
extern "Java"
{
  namespace java
  {
    namespace net
    {
        class InetAddress;
        class ServerSocket;
    }
  }
  namespace javax
  {
    namespace net
    {
        class VanillaServerSocketFactory;
    }
  }
}

class javax::net::VanillaServerSocketFactory : public ::javax::net::ServerSocketFactory
{

public: // actually package-private
  VanillaServerSocketFactory();
public:
  virtual ::java::net::ServerSocket * createServerSocket();
  virtual ::java::net::ServerSocket * createServerSocket(jint);
  virtual ::java::net::ServerSocket * createServerSocket(jint, jint);
  virtual ::java::net::ServerSocket * createServerSocket(jint, jint, ::java::net::InetAddress *);
  static ::java::lang::Class class$;
};

#endif // __javax_net_VanillaServerSocketFactory__
