#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