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