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

#ifndef __org_apache_lucene_store_BufferedIndexOutput__
#define __org_apache_lucene_store_BufferedIndexOutput__

#pragma interface

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

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

class org::apache::lucene::store::BufferedIndexOutput : public ::org::apache::lucene::store::IndexOutput
{
public:
  BufferedIndexOutput ();
  virtual void writeByte (jbyte);
  virtual void writeBytes (jbyteArray, jint);
  virtual void flush ();
public:  // actually protected
  virtual void flushBuffer (jbyteArray, jint) = 0;
public:
  virtual void close ();
  virtual jlong getFilePointer ();
  virtual void seek (jlong);
  virtual jlong length () = 0;
public: // actually package-private
  static const jint BUFFER_SIZE = 1024L;
private:
  jbyteArray __attribute__((aligned(__alignof__( ::org::apache::lucene::store::IndexOutput ))))  buffer;
  jlong bufferStart;
  jint bufferPosition;
public:

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

#endif /* __org_apache_lucene_store_BufferedIndexOutput__ */
