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

#ifndef __org_apache_lucene_index_CompoundFileWriter__
#define __org_apache_lucene_index_CompoundFileWriter__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace org
  {
    namespace apache
    {
      namespace lucene
      {
        namespace index
        {
          class CompoundFileWriter;
          class CompoundFileWriter$FileEntry;
        }
        namespace store
        {
          class IndexOutput;
          class Directory;
        }
      }
    }
  }
}

class org::apache::lucene::index::CompoundFileWriter : public ::java::lang::Object
{
public:
  CompoundFileWriter (::org::apache::lucene::store::Directory *, ::java::lang::String *);
  ::org::apache::lucene::store::Directory *getDirectory () { return directory; }
  ::java::lang::String *getName () { return fileName; }
  void addFile (::java::lang::String *);
  void close ();
private:
  void copyFile (::org::apache::lucene::index::CompoundFileWriter$FileEntry *, ::org::apache::lucene::store::IndexOutput *, jbyteArray);
  ::org::apache::lucene::store::Directory * __attribute__((aligned(__alignof__( ::java::lang::Object )))) directory;
  ::java::lang::String *fileName;
  ::java::util::HashSet *ids;
  ::java::util::LinkedList *entries;
  jboolean merged;

  friend class org_apache_lucene_index_CompoundFileWriter$1;
  friend class org_apache_lucene_index_CompoundFileWriter$FileEntry;
public:

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

#endif /* __org_apache_lucene_index_CompoundFileWriter__ */
