support for user defined indexing: step 1 basic routines.

This commit is contained in:
Vítor Santos Costa
2009-02-12 16:39:20 +00:00
parent 1191b039d5
commit 4b826e76ae
10 changed files with 186 additions and 2 deletions

34
include/udi.h Normal file
View File

@@ -0,0 +1,34 @@
/*chamada a cada index/2
controi estrutura de control, para definir a indexação, contem a
rtree p.e.
retorna a estrutura de control
*/
typedef void *
(* Yap_UdiInit)(
Term spec, /* mode spec */
void *pred, /* pass predicate information */
int arity);
/*chamada a cada assert*/
typedef void *
(* Yap_UdiInsert)(Term t, /* termo asserted */
void *control, /* estrutura de control*/
void *clausule); /* valor a guardar na arvore, para retornar na pesquisa */
/* chamada cada vez que um predicado indexado aparece no código
Returns:
NULL quando não há indexação usavel no predicado (fallback to
yap indexing)
FALSE
TRY_RETRY_TRUST quando há resultados positivos
*/
typedef void *
(* Yap_UdiSearch)(void * control);
typedef struct udi_control_block {
Yap_UdiInit init;
Yap_UdiInsert insert;
Yap_UdiSearch search;
} *UdiControlBlock;