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

#ifndef __org_apache_lucene_index_IndexFileDeleter__
#define __org_apache_lucene_index_IndexFileDeleter__

#pragma interface

#include <java/lang/Object.h>

extern "Java"
{
  namespace org
  {
    namespace apache
    {
      namespace lucene
      {
        namespace index
        {
          class IndexFileDeleter;
          class SegmentInfos;
        }
        namespace store
        {
          class Directory;
        }
      }
    }
  }
}

class org::apache::lucene::index::IndexFileDeleter : public ::java::lang::Object
{
public:
  IndexFileDeleter (::org::apache::lucene::index::SegmentInfos *, ::org::apache::lucene::store::Directory *);
public: // actually package-private
  virtual void setInfoStream (::java::io::PrintStream *);
public:
  virtual void findDeletableFiles ();
  void deleteSegments (::java::util::Vector *);
  void deleteFiles (::java::util::Vector *, ::org::apache::lucene::store::Directory *);
  void deleteFiles (::java::util::Vector *);
  void deleteFile (::java::lang::String *);
public: // actually package-private
  void clearPendingFiles ();
  void addPendingFile (::java::lang::String *);
  void commitPendingFiles ();
public:
  void addDeletableFile (::java::lang::String *);
  void deleteFiles ();
private:
  ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object )))) deletable;
  ::java::util::Vector *pending;
  ::org::apache::lucene::store::Directory *directory;
  ::org::apache::lucene::index::SegmentInfos *segmentInfos;
  ::java::io::PrintStream *infoStream;
public:

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

#endif /* __org_apache_lucene_index_IndexFileDeleter__ */
