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

#ifndef __gnu_java_nio_InputStreamChannel__
#define __gnu_java_nio_InputStreamChannel__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace nio
      {
          class InputStreamChannel;
      }
    }
  }
  namespace java
  {
    namespace nio
    {
        class ByteBuffer;
    }
  }
}

class gnu::java::nio::InputStreamChannel : public ::java::lang::Object
{

public:
  InputStreamChannel(::java::io::InputStream *);
  void close();
  jboolean isOpen();
  jint read(::java::nio::ByteBuffer *);
private:
  jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) closed;
  ::java::io::InputStream * in;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_nio_InputStreamChannel__
