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

#ifndef __java_nio_channels_VMChannels__
#define __java_nio_channels_VMChannels__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace nio
      {
        namespace channels
        {
            class FileChannelImpl;
        }
      }
    }
  }
  namespace java
  {
    namespace nio
    {
      namespace channels
      {
          class ReadableByteChannel;
          class VMChannels;
          class WritableByteChannel;
      }
    }
  }
}

class java::nio::channels::VMChannels : public ::java::lang::Object
{

  VMChannels();
public: // actually package-private
  static ::java::io::FileInputStream * newInputStream(::gnu::java::nio::channels::FileChannelImpl *);
  static ::java::io::FileOutputStream * newOutputStream(::gnu::java::nio::channels::FileChannelImpl *);
  static ::java::io::InputStream * newInputStream(::java::nio::channels::ReadableByteChannel *);
  static ::java::io::OutputStream * newOutputStream(::java::nio::channels::WritableByteChannel *);
public:
  static ::java::lang::Class class$;
};

#endif // __java_nio_channels_VMChannels__
