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

#ifndef __java_nio_channels_spi_AbstractInterruptibleChannel__
#define __java_nio_channels_spi_AbstractInterruptibleChannel__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace nio
    {
      namespace channels
      {
        namespace spi
        {
            class AbstractInterruptibleChannel;
        }
      }
    }
  }
}

class java::nio::channels::spi::AbstractInterruptibleChannel : public ::java::lang::Object
{

public: // actually protected
  AbstractInterruptibleChannel();
  virtual void begin();
public:
  virtual void close();
public: // actually protected
  virtual void end(jboolean);
  virtual void implCloseChannel() = 0;
public:
  virtual jboolean isOpen();
private:
  jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) closed;
public:
  static ::java::lang::Class class$;
};

#endif // __java_nio_channels_spi_AbstractInterruptibleChannel__
