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

#ifndef __gnu_java_nio_ChannelOutputStream__
#define __gnu_java_nio_ChannelOutputStream__

#pragma interface

#include <java/io/OutputStream.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace nio
      {
          class ChannelOutputStream;
      }
    }
  }
  namespace java
  {
    namespace nio
    {
      namespace channels
      {
          class WritableByteChannel;
      }
    }
  }
}

class gnu::java::nio::ChannelOutputStream : public ::java::io::OutputStream
{

public:
  ChannelOutputStream(::java::nio::channels::WritableByteChannel *);
  void write(jint);
private:
  ::java::nio::channels::WritableByteChannel * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) ch;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_nio_ChannelOutputStream__
