This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/packages/udi/b+tree/b+tree_udi.h
2015-10-13 08:17:51 +01:00

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__ */