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

#ifndef __java_util_zip_CheckedInputStream__
#define __java_util_zip_CheckedInputStream__

#pragma interface

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


class java::util::zip::CheckedInputStream : public ::java::io::FilterInputStream
{

public:
  CheckedInputStream(::java::io::InputStream *, ::java::util::zip::Checksum *);
  virtual ::java::util::zip::Checksum * getChecksum();
  virtual jint read();
  virtual jint read(JArray< jbyte > *, jint, jint);
  virtual jlong skip(jlong);
private:
  ::java::util::zip::Checksum * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) sum;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_zip_CheckedInputStream__
