
#ifndef XPACE_REFLIST_C_H
#define XPACE_REFLIST_C_H

#include "base/types_c.h"
#include "base/exception_c.h"

#ifdef __cplusplus
  #include "index/reflist/reflist.h"
  struct Xpace_RefListCursor
  {
    Xpace::RefListCursor* rlc;
  };
  extern "C"
  {

#else
  typedef struct
  {
    void* v;
  }
  Xpace_RefListCursor;
#endif

XPACE_EXPORT void _stdcall Xpace_RefListCursor_Destroy
  (Xpace_RefListCursor rlc);

XPACE_EXPORT Xpace_Error _stdcall Xpace_RefListCursor_getCount
  (Xpace_RefListCursor rlc,
   uint64* result);

XPACE_EXPORT Xpace_Error _stdcall Xpace_RefListCursor_getPosition
  (Xpace_RefListCursor rlc,
   uint64* result);

XPACE_EXPORT Xpace_Error _stdcall Xpace_RefListCursor_Move
  (Xpace_RefListCursor rlc,
   int64 distance,
   bool relative,
   bool* result);

XPACE_EXPORT Xpace_Error _stdcall Xpace_RefListCursor_getDocNum
  (Xpace_RefListCursor rlc,
   uint64* result);

#ifdef __cplusplus
  }  // extern "C"
#endif

#endif