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

#ifndef __org_apache_lucene_index_TermInfosReader__
#define __org_apache_lucene_index_TermInfosReader__

#pragma interface

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

extern "Java"
{
  namespace org
  {
    namespace apache
    {
      namespace lucene
      {
        namespace index
        {
          class TermInfosReader;
          class TermInfo;
          class Term;
          class SegmentTermEnum;
          class FieldInfos;
        }
        namespace store
        {
          class Directory;
        }
      }
    }
  }
}

class org::apache::lucene::index::TermInfosReader : public ::java::lang::Object
{
public: // actually package-private
  TermInfosReader (::org::apache::lucene::store::Directory *, ::java::lang::String *, ::org::apache::lucene::index::FieldInfos *);
public:  // actually protected
  void finalize ();
public:
  jint getSkipInterval ();
public: // actually package-private
  void close ();
  jlong size () { return size__; }
private:
  ::org::apache::lucene::index::SegmentTermEnum *getEnum ();
  void ensureIndexIsRead ();
  jint getIndexOffset (::org::apache::lucene::index::Term *);
  void seekEnum (jint);
public: // actually package-private
  ::org::apache::lucene::index::TermInfo *get (::org::apache::lucene::index::Term *);
private:
  ::org::apache::lucene::index::TermInfo *scanEnum (::org::apache::lucene::index::Term *);
public: // actually package-private
  ::org::apache::lucene::index::Term *get (jint);
private:
  ::org::apache::lucene::index::Term *scanEnum (jint);
public: // actually package-private
  jlong getPosition (::org::apache::lucene::index::Term *);
public:
  ::org::apache::lucene::index::SegmentTermEnum *terms ();
  ::org::apache::lucene::index::SegmentTermEnum *terms (::org::apache::lucene::index::Term *);
private:
  ::org::apache::lucene::store::Directory * __attribute__((aligned(__alignof__( ::java::lang::Object )))) directory;
  ::java::lang::String *segment;
  ::org::apache::lucene::index::FieldInfos *fieldInfos;
  ::java::lang::ThreadLocal *enumerators;
  ::org::apache::lucene::index::SegmentTermEnum *origEnum;
  jlong size__;
  JArray< ::org::apache::lucene::index::Term *> *indexTerms;
  JArray< ::org::apache::lucene::index::TermInfo *> *indexInfos;
  jlongArray indexPointers;
  ::org::apache::lucene::index::SegmentTermEnum *indexEnum;
public:

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

#endif /* __org_apache_lucene_index_TermInfosReader__ */
