This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/include/udi.h

56 lines
1.7 KiB
C
Raw Normal View History

/*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)(
2012-12-17 20:23:03 +00:00
YAP_Term spec, /* mode spec */
void *pred, /* pass predicate information */
int arity);
/*chamada a cada assert*/
typedef void *
2012-12-17 20:23:03 +00:00
(* Yap_UdiInsert)(YAP_Term t, /* termo asserted */
void *control, /* estrutura de control*/
void *clausule); /* valor a guardar na arvore, para retornar na pesquisa */
2012-12-18 18:26:59 +00:00
/* Callback for each value found in a search */
typedef int /* with a FALSE return should abort the search */
(* Yap_UdiCallback) (void *key, /*index key*/
void *clausule, /*clause*/
void *arg); /* auxiliary to callback */
/* chamada cada vez que um predicado indexado aparece no código
Returns:
NULL quando não indexação usavel no predicado (fallback to
yap indexing)
FALSE
TRY_RETRY_TRUST quando resultados positivos
*/
typedef void *
2012-12-18 18:26:59 +00:00
(* Yap_UdiSearch)(void * control,
Yap_UdiCallback f, /* callback on each found value*/
void *arg);
2009-02-20 11:42:48 +00:00
/* chamada cada vez que um predicado indexado aparece no código
Returns:
NULL quando não indexação usavel no predicado (fallback to
yap indexing)
FALSE
TRY_RETRY_TRUST quando resultados positivos
*/
typedef int
(* Yap_UdiDestroy)(void * control);
typedef struct udi_control_block {
2012-12-17 20:23:03 +00:00
YAP_Atom decl; //atom that triggers this indexing structure
Yap_UdiInit init;
Yap_UdiInsert insert;
Yap_UdiSearch search;
2009-02-20 11:42:48 +00:00
Yap_UdiDestroy destroy;
} *UdiControlBlock;
2012-12-17 20:23:03 +00:00
/* used to register the new indexing structure */
void Yap_UdiRegister(UdiControlBlock);