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

#ifndef __gnu_gcj_convert_Input_UnicodeLittle__
#define __gnu_gcj_convert_Input_UnicodeLittle__

#pragma interface

#include <gnu/gcj/convert/BytesToUnicode.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace gcj
    {
      namespace convert
      {
          class Input_UnicodeLittle;
      }
    }
  }
}

class gnu::gcj::convert::Input_UnicodeLittle : public ::gnu::gcj::convert::BytesToUnicode
{

public:
  Input_UnicodeLittle();
  virtual ::java::lang::String * getName();
  virtual jint read(JArray< jchar > *, jint, jint);
public: // actually package-private
  jchar __attribute__((aligned(__alignof__( ::gnu::gcj::convert::BytesToUnicode)))) partial;
  jint partial_count;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_gcj_convert_Input_UnicodeLittle__
