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

#ifndef __java_io_BufferedInputStream__
#define __java_io_BufferedInputStream__

#pragma interface

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


class java::io::BufferedInputStream : public ::java::io::FilterInputStream
{

public:
  BufferedInputStream(::java::io::InputStream *);
  BufferedInputStream(::java::io::InputStream *, jint);
  virtual jint available();
  virtual void close();
  virtual void mark(jint);
  virtual jboolean markSupported();
  virtual jint read();
  virtual jint read(JArray< jbyte > *, jint, jint);
  virtual void reset();
  virtual jlong skip(jlong);
public: // actually package-private
  virtual jboolean refill();
private:
  static const jint DEFAULT_BUFFER_SIZE = 2048;
public: // actually protected
  JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) buf;
  jint count;
  jint pos;
  jint markpos;
  jint marklimit;
private:
  jint bufferSize;
public:
  static ::java::lang::Class class$;
};

#endif // __java_io_BufferedInputStream__
