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

#ifndef __org_apache_lucene_index_CompoundFileReader__
#define __org_apache_lucene_index_CompoundFileReader__

#pragma interface

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

extern "Java"
{
  namespace org
  {
    namespace apache
    {
      namespace lucene
      {
        namespace index
        {
          class CompoundFileReader;
        }
        namespace store
        {
          class Lock;
          class IndexOutput;
          class IndexInput;
          class Directory;
        }
      }
    }
  }
}

class org::apache::lucene::index::CompoundFileReader : public ::org::apache::lucene::store::Directory
{
public:
  CompoundFileReader (::org::apache::lucene::store::Directory *, ::java::lang::String *);
  virtual ::org::apache::lucene::store::Directory *getDirectory () { return directory; }
  virtual ::java::lang::String *getName () { return fileName; }
  virtual void close ();
  virtual ::org::apache::lucene::store::IndexInput *openInput (::java::lang::String *);
  virtual JArray< ::java::lang::String *> *list ();
  virtual jboolean fileExists (::java::lang::String *);
  virtual jlong fileModified (::java::lang::String *);
  virtual void touchFile (::java::lang::String *);
  virtual void deleteFile (::java::lang::String *);
  virtual void renameFile (::java::lang::String *, ::java::lang::String *);
  virtual jlong fileLength (::java::lang::String *);
  virtual ::org::apache::lucene::store::IndexOutput *createOutput (::java::lang::String *);
  virtual ::org::apache::lucene::store::Lock *makeLock (::java::lang::String *);
private:
  ::org::apache::lucene::store::Directory * __attribute__((aligned(__alignof__( ::org::apache::lucene::store::Directory )))) directory;
  ::java::lang::String *fileName;
  ::org::apache::lucene::store::IndexInput *stream;
  ::java::util::HashMap *entries;

  friend class org_apache_lucene_index_CompoundFileReader$1;
  friend class org_apache_lucene_index_CompoundFileReader$CSIndexInput;
  friend class org_apache_lucene_index_CompoundFileReader$FileEntry;
public:

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

#endif /* __org_apache_lucene_index_CompoundFileReader__ */
