diff --git a/C/udi.c b/C/udi.c index a9a41cd96..b5cdd73ae 100644 --- a/C/udi.c +++ b/C/udi.c @@ -3,6 +3,7 @@ #include "clause.h" #include "udi.h" + #include "rtree_udi.h" /* we can have this stactic because it is written once */ @@ -158,3 +159,4 @@ Yap_udi_init(void) RtreeCmd.destroy = RtreeUdiDestroy; Yap_InitCPred("$udi_init", 2, p_new_udi, 0); } + diff --git a/include/rtree_udi.h b/include/rtree_udi.h new file mode 100644 index 000000000..038f7b1c4 --- /dev/null +++ b/include/rtree_udi.h @@ -0,0 +1,24 @@ +#ifndef _RTREE_UDI_ +#define _RTREE_UDI_ + +#ifndef _RTREE_ +typedef void control_t; +#endif + +/*Prolog term from :- udi(a(-,+,+)). + User defined index announce +*/ +extern control_t *RtreeUdiInit (Term spec, + void *pred, + int arity); + +/*this is called in each asserted term that was declared to udi_init*/ +extern control_t *RtreeUdiInsert (Term t, /*asserted term*/ + control_t *control, + void *clausule); /*to store in tree and return + in search*/ + +extern void *RtreeUdiSearch (control_t *control); +extern int RtreeUdiDestroy(control_t *control); + +#endif /* _RTREE_UDI_ */