mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
48 lines
747 B
C
48 lines
747 B
C
#ifndef SP_CURSOR_H_
|
|
#define SP_CURSOR_H_
|
|
|
|
/*
|
|
* sophia database
|
|
* sphia.org
|
|
*
|
|
* Copyright (c) Dmitry Simonenko
|
|
* BSD License
|
|
*/
|
|
|
|
typedef struct spc spc;
|
|
|
|
enum spcsrc {
|
|
SPCNONE,
|
|
SPCI0,
|
|
SPCI1,
|
|
SPCP
|
|
};
|
|
|
|
#define SPCVDUP 1
|
|
#define SPCPDUP 2
|
|
|
|
typedef enum spcsrc spcsrc;
|
|
|
|
struct spc {
|
|
spmagic m;
|
|
sporder o;
|
|
sp *s;
|
|
spii i0, i1;
|
|
int dup; /* last iteration duplicate flags */
|
|
sppageh *ph;
|
|
sppage *p;
|
|
int pi; /* page space index */
|
|
spvh *pv;
|
|
int pvi; /* version page index */
|
|
spcsrc vsrc; /* last iteration source */
|
|
spref r; /* last iteration result */
|
|
};
|
|
|
|
void sp_cursoropen(spc*, sp*, sporder, char*, int);
|
|
void sp_cursorclose(spc*);
|
|
|
|
int sp_iterate(spc*);
|
|
int sp_match(sp*, void*, size_t, void**, size_t*);
|
|
|
|
#endif
|