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

#ifndef __org_apache_lucene_store_BufferedIndexInput__
#define __org_apache_lucene_store_BufferedIndexInput__

#pragma interface

#include <org/apache/lucene/store/IndexInput.h>
#include <gcj/array.h>

extern "Java"
{
  namespace org
  {
    namespace apache
    {
      namespace lucene
      {
        namespace store
        {
          class BufferedIndexInput;
        }
      }
    }
  }
}

class org::apache::lucene::store::BufferedIndexInput : public ::org::apache::lucene::store::IndexInput
{
public:
  BufferedIndexInput ();
  virtual jbyte readByte ();
  virtual void readBytes (jbyteArray, jint, jint);
private:
  void refill ();
public:  // actually protected
  virtual void readInternal (jbyteArray, jint, jint) = 0;
public:
  virtual jlong getFilePointer ();
  virtual void seek (jlong);
public:  // actually protected
  virtual void seekInternal (jlong) = 0;
public:
  virtual ::java::lang::Object *clone ();
public: // actually package-private
  static const jint BUFFER_SIZE = 1024L;
private:
  jbyteArray __attribute__((aligned(__alignof__( ::org::apache::lucene::store::IndexInput ))))  buffer;
  jlong bufferStart;
  jint bufferLength;
  jint bufferPosition;
public:

  static ::java::lang::Class class$;
};

#endif /* __org_apache_lucene_store_BufferedIndexInput__ */
