/*************************************************************************************************
 * The extended advanced API of QDBM
 *                                                      Copyright (C) 2000-2004 Mikio Hirabayashi
 * This file is part of QDBM, Quick Database Manager.
 * QDBM is free software; you can redistribute it and/or modify it under the terms of the GNU
 * Lesser General Public License as published by the Free Software Foundation; either version
 * 2.1 of the License or any later version.  QDBM is distributed in the hope that it will be
 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
 * details.
 * You should have received a copy of the GNU Lesser General Public License along with QDBM; if
 * not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 * 02111-1307 USA.
 *************************************************************************************************/


#ifndef _VISTA_H                         /* duplication check */
#define _VISTA_H

#if defined(__cplusplus)                 /* export for C++ */
extern "C" {
#endif



/*************************************************************************************************
 * macros borrowing symbols from Villa
 *************************************************************************************************/


#include <depot.h>
#include <curia.h>
#include <cabin.h>
#include <stdlib.h>

#define VS_DNUM        16

#define VLREC          VSREC
#define VLIDX          VSIDX
#define VLLEAF         VSLEAF
#define VLNODE         VSNODE
#define VLCFUNC        VSCFUNC

#define VL_CMPLEX      VS_CMPLEX
#define VL_CMPINT      VS_CMPINT
#define VL_CMPNUM      VS_CMPNUM
#define VL_CMPDEC      VS_CMPDEC

#define VILLA          VISTA

#define VL_OREADER     VS_OREADER
#define VL_OWRITER     VS_OWRITER
#define VL_OCREAT      VS_OCREAT
#define VL_ONOLCK      VS_ONOLCK

#define VL_DOVER       VS_DOVER
#define VL_DKEEP       VS_DKEEP
#define VL_DDUP        VS_DDUP

#define VL_JFORWARD    VS_JFORWARD
#define VL_JBACKWARD   VS_JBACKWARD

#define vlopen         vsopen
#define vlclose        vsclose
#define vlput          vsput
#define vlout          vsout
#define vlget          vsget
#define vlvnum         vsvnum
#define vlputlist      vsputlist
#define vloutlist      vsoutlist
#define vlgetlist      vsgetlist
#define vlcurfirst     vscurfirst
#define vlcurlast      vscurlast
#define vlcurprev      vscurprev
#define vlcurnext      vscurnext
#define vlcurjump      vscurjump
#define vlcurkey       vscurkey
#define vlcurval       vscurval
#define vlsettuning    vssettuning
#define vlsync         vssync
#define vloptimize     vsoptimize
#define vlname         vsname
#define vlfsiz         vsfsiz
#define vllnum         vslnum
#define vlnnum         vsnnum
#define vlrnum         vsrnum
#define vlwritable     vswritable
#define vlfatalerror   vsfatalerror
#define vlinode        vsinode
#define vltranbegin    vstranbegin
#define vltrancommit   vstrancommit
#define vltranabort    vstranabort
#define vlremove       vsremove
#define vlrepair       vsrepair

#define DEPOT          CURIA

#define \
  dpopen(name, omode, bnum) \
  cropen(name, omode, ((bnum / VS_DNUM) * 4), VS_DNUM)

#define \
  dpclose(db) \
  crclose(db)

#define \
  dpput(db, kbuf, ksiz, vbuf, vsiz, dmode) \
  crput(db, kbuf, ksiz, vbuf, vsiz, dmode)

#define \
  dpout(db, kbuf, ksiz) \
  crout(db, kbuf, ksiz)

#define \
  dpget(db, kbuf, ksiz, start, max, sp) \
  crget(db, kbuf, ksiz, start, max, sp)

#define \
  dpvsiz(db, kbuf, ksiz) \
  crvsiz(db, kbuf, ksiz)

#define \
  dpiterinit(db) \
  criterinit(db)

#define \
  dpiternext(db, sp) \
  criternext(db, sp)

#define \
  dpsetalign(db, align) \
  crsetalign(db, align)

#define \
  dpsync(db) \
  crsync(db)

#define \
  dpoptimize(db, bnum) \
  croptimize(db, bnum)

#define \
  dpname(db) \
  crname(db)

#define \
  dpfsiz(db) \
  crfsiz(db)

#define \
  dpbnum(db) \
  crbnum(db)

#define \
  dpbusenum(db) \
  crbusenum(db)

#define \
  dprnum(db) \
  crrnum(db)

#define \
  dpwritable(db) \
  crwritable(db)

#define \
  dpfatalerror(db) \
  crfatalerror(db)

#define \
  dpinode(db) \
  crinode(db)

#define \
  dpfdesc(db) \
  crfdesc(db)

#define \
  dpremove(db) \
  crremove(db)

#define \
  dprepair(db) \
  crrepair(db)

#define \
  dpmemsync(db) \
  crmemsync(db)

#define \
  dpgetflags(db) \
  crgetflags(db)

#define \
  dpsetflags(db, flags) \
  crsetflags(db, flags)



/*************************************************************************************************
 * including real definition
 *************************************************************************************************/


#include "villa.h"



#if defined(__cplusplus)                 /* export for C++ */
}
#endif

#endif                                   /* duplication check */


/* END OF FILE */
