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

#ifndef __java_net_SocketOptions__
#define __java_net_SocketOptions__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace net
    {
        class SocketOptions;
    }
  }
}

class java::net::SocketOptions : public ::java::lang::Object
{

public:
  virtual void setOption(jint, ::java::lang::Object *) = 0;
  virtual ::java::lang::Object * getOption(jint) = 0;
  static const jint SO_KEEPALIVE = 8;
  static const jint SO_LINGER = 128;
  static const jint SO_TIMEOUT = 4102;
  static const jint SO_BINDADDR = 15;
  static const jint SO_SNDBUF = 4097;
  static const jint SO_RCVBUF = 4098;
  static const jint SO_REUSEADDR = 4;
  static const jint SO_BROADCAST = 32;
  static const jint SO_OOBINLINE = 4099;
  static const jint TCP_NODELAY = 1;
  static const jint IP_MULTICAST_IF = 16;
  static const jint IP_MULTICAST_IF2 = 31;
  static const jint IP_MULTICAST_LOOP = 18;
  static const jint IP_TOS = 3;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_net_SocketOptions__
