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

#ifndef __gnu_CORBA_SocketRepository__
#define __gnu_CORBA_SocketRepository__

#pragma interface

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

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

public:
  SocketRepository();
  static void put_socket(::java::lang::Object *, ::java::net::Socket *);
private:
  static void gc();
public: // actually package-private
  static jboolean not_reusable(::java::net::Socket *);
public:
  static ::java::net::Socket * get_socket(::java::lang::Object *);
private:
  static ::java::util::HashMap * sockets;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_CORBA_SocketRepository__
