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;
 | |
| 
 |