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

#ifndef __gnu_CORBA_DefaultSocketFactory__
#define __gnu_CORBA_DefaultSocketFactory__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace CORBA
    {
        class DefaultSocketFactory;
    }
  }
  namespace java
  {
    namespace net
    {
        class ServerSocket;
        class Socket;
    }
  }
}

class gnu::CORBA::DefaultSocketFactory : public ::java::lang::Object
{

public:
  DefaultSocketFactory();
  virtual ::java::net::Socket * createClientSocket(::java::lang::String *, jint);
  virtual ::java::net::ServerSocket * createServerSocket(jint);
  static ::gnu::CORBA::DefaultSocketFactory * Singleton;
  static ::java::lang::Class class$;
};

#endif // __gnu_CORBA_DefaultSocketFactory__
