support for user defined indexing: step 1 basic routines.
This commit is contained in:
34
include/udi.h
Normal file
34
include/udi.h
Normal 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;
|
||||
|
Reference in New Issue
Block a user