46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
|
|
/*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);
|
|
|
|
/* 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 int
|
|
(* Yap_UdiDestroy)(void * control);
|
|
|
|
typedef struct udi_control_block {
|
|
Yap_UdiInit init;
|
|
Yap_UdiInsert insert;
|
|
Yap_UdiSearch search;
|
|
Yap_UdiDestroy destroy;
|
|
} *UdiControlBlock;
|
|
|