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

#ifndef __java_io_PushbackReader__
#define __java_io_PushbackReader__

#pragma interface

#include <java/io/FilterReader.h>
#include <gcj/array.h>


class java::io::PushbackReader : public ::java::io::FilterReader
{

public:
  PushbackReader(::java::io::Reader *);
  PushbackReader(::java::io::Reader *, jint);
  virtual void close();
  virtual void mark(jint);
  virtual jboolean markSupported();
  virtual void reset();
  virtual jboolean ready();
  virtual jlong skip(jlong);
  virtual jint read();
  virtual jint read(JArray< jchar > *, jint, jint);
  virtual void unread(jint);
  virtual void unread(JArray< jchar > *);
  virtual void unread(JArray< jchar > *, jint, jint);
private:
  static const jint DEFAULT_BUFFER_SIZE = 1;
  JArray< jchar > * __attribute__((aligned(__alignof__( ::java::io::FilterReader)))) buf;
  jint pos;
public:
  static ::java::lang::Class class$;
};

#endif // __java_io_PushbackReader__
