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

#ifndef __org_apache_lucene_store_db_DbDirectory__
#define __org_apache_lucene_store_db_DbDirectory__

#pragma interface

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

extern "Java"
{
  namespace org
  {
    namespace apache
    {
      namespace lucene
      {
        namespace store
        {
          namespace db
          {
            class DbDirectory;
          }
          class Lock;
          class IndexInput;
          class IndexOutput;
        }
      }
    }
  }
  namespace com
  {
    namespace sleepycat
    {
      namespace db
      {
        class Database;
        class Transaction;
        namespace internal
        {
          class DbTxn;
          class Db;
        }
      }
    }
  }
}

class org::apache::lucene::store::db::DbDirectory : public ::org::apache::lucene::store::Directory
{
public:
  DbDirectory (::com::sleepycat::db::internal::DbTxn *, ::com::sleepycat::db::internal::Db *, ::com::sleepycat::db::internal::Db *, jint);
  DbDirectory (::com::sleepycat::db::Transaction *, ::com::sleepycat::db::Database *, ::com::sleepycat::db::Database *, jint);
  DbDirectory (::com::sleepycat::db::Transaction *, ::com::sleepycat::db::Database *, ::com::sleepycat::db::Database *);
  virtual void close ();
  virtual void flush ();
  virtual ::org::apache::lucene::store::IndexOutput *createOutput (::java::lang::String *);
  virtual void deleteFile (::java::lang::String *);
  virtual jboolean fileExists (::java::lang::String *);
  virtual jlong fileLength (::java::lang::String *);
  virtual jlong fileModified (::java::lang::String *);
  virtual JArray< ::java::lang::String *> *list ();
  virtual ::org::apache::lucene::store::IndexInput *openInput (::java::lang::String *);
  virtual ::org::apache::lucene::store::Lock *makeLock (::java::lang::String *);
  virtual void renameFile (::java::lang::String *, ::java::lang::String *);
  virtual void touchFile (::java::lang::String *);
  virtual void setTransaction (::com::sleepycat::db::Transaction *);
  virtual void setTransaction (::com::sleepycat::db::internal::DbTxn *);
public:  // actually protected
  ::java::util::Set * __attribute__((aligned(__alignof__( ::org::apache::lucene::store::Directory )))) openFiles;
  ::com::sleepycat::db::internal::Db *files;
  ::com::sleepycat::db::internal::Db *blocks;
  ::com::sleepycat::db::internal::DbTxn *txn;
  jint flags;
public:

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

#endif /* __org_apache_lucene_store_db_DbDirectory__ */
