52 lines
1.6 KiB
C
52 lines
1.6 KiB
C
#ifndef __BTREE_UDI_H__
|
|
#define __BTREE_UDI_H__ 1
|
|
|
|
#include <YapInterface.h>
|
|
#include <udi.h>
|
|
#include "b+tree.h"
|
|
|
|
#define SPEC "btree"
|
|
/*Prolog term from :- udi(a(-,btree,-)).*/
|
|
|
|
extern void *BtreeUdiInit
|
|
(YAP_Term spec, int arg, int arity);
|
|
|
|
extern void *BtreeUdiInsert
|
|
(void *control, YAP_Term term, int arg, void *data);
|
|
|
|
extern int BtreeUdiSearch
|
|
(void *control, int arg, Yap_UdiCallback callback, void *args);
|
|
|
|
extern int BtreeUdiDestroy(void *control);
|
|
|
|
typedef int (*BTreeSearchAtt) (btree_t tree, YAP_Term constraint, Yap_UdiCallback callback, void *args);
|
|
|
|
struct Att
|
|
{
|
|
const char *att;
|
|
BTreeSearchAtt proc_att;
|
|
};
|
|
|
|
int BTreeMinAtt (btree_t tree, YAP_Term constraint, Yap_UdiCallback callback, void *args);
|
|
int BTreeMaxAtt (btree_t tree, YAP_Term constraint, Yap_UdiCallback callback, void *args);
|
|
int BTreeEqAtt (btree_t tree, YAP_Term constraint, Yap_UdiCallback callback, void *args);
|
|
int BTreeLtAtt (btree_t tree, YAP_Term constraint, Yap_UdiCallback callback, void *args);
|
|
int BTreeLeAtt (btree_t tree, YAP_Term constraint, Yap_UdiCallback callback, void *args);
|
|
int BTreeGtAtt (btree_t tree, YAP_Term constraint, Yap_UdiCallback callback, void *args);
|
|
int BTreeGeAtt (btree_t tree, YAP_Term constraint, Yap_UdiCallback callback, void *args);
|
|
int BTreeRangeAtt (btree_t tree, YAP_Term constraint, Yap_UdiCallback callback, void *args);
|
|
|
|
static struct Att att_func[] =
|
|
{
|
|
{"min",BTreeMinAtt},
|
|
{"max",BTreeMaxAtt},
|
|
{"eq",BTreeEqAtt},
|
|
{"lt",BTreeLtAtt},
|
|
{"le",BTreeLeAtt},
|
|
{"gt",BTreeGtAtt},
|
|
{"ge",BTreeGeAtt},
|
|
{"range",BTreeRangeAtt}
|
|
};
|
|
|
|
#endif /* __BTREE_UDI_H__ */
|