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

#ifndef __java_io_PushbackInputStream__
#define __java_io_PushbackInputStream__

#pragma interface

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


class java::io::PushbackInputStream : public ::java::io::FilterInputStream
{

public:
  PushbackInputStream(::java::io::InputStream *);
  PushbackInputStream(::java::io::InputStream *, jint);
  virtual jint available();
  virtual void close();
  virtual jboolean markSupported();
  virtual void reset();
  virtual jint read();
  virtual jint read(JArray< jbyte > *, jint, jint);
  virtual void unread(jint);
  virtual void unread(JArray< jbyte > *);
  virtual void unread(JArray< jbyte > *, jint, jint);
  virtual jlong skip(jlong);
private:
  static const jint DEFAULT_BUFFER_SIZE = 1;
public: // actually protected
  JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) buf;
  jint pos;
public:
  static ::java::lang::Class class$;
};

#endif // __java_io_PushbackInputStream__
