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

#ifndef __gnu_java_nio_charset_UTF_8$Encoder__
#define __gnu_java_nio_charset_UTF_8$Encoder__

#pragma interface

#include <java/nio/charset/CharsetEncoder.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace nio
      {
        namespace charset
        {
            class UTF_8$Encoder;
        }
      }
    }
  }
  namespace java
  {
    namespace nio
    {
        class ByteBuffer;
        class CharBuffer;
      namespace charset
      {
          class Charset;
          class CoderResult;
      }
    }
  }
}

class gnu::java::nio::charset::UTF_8$Encoder : public ::java::nio::charset::CharsetEncoder
{

public: // actually package-private
  UTF_8$Encoder(::java::nio::charset::Charset *);
public: // actually protected
  ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *);
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_nio_charset_UTF_8$Encoder__
