X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/e42e23b74408ae54e9ae25b7cadadf45d80c34e1..d95cfe00c7dfecac65e0105a92d65f877a4a8e4f:/emufs/indice_b.h diff --git a/emufs/indice_b.h b/emufs/indice_b.h index 9e46910..08eb3d2 100644 --- a/emufs/indice_b.h +++ b/emufs/indice_b.h @@ -5,7 +5,7 @@ #include #include - +#include #include "common.h" #include "indices.h" @@ -35,12 +35,32 @@ void emufs_indice_b_crear(INDICE *idx); int emufs_indice_b_insertar(INDICE *idx, CLAVE clave, INDICE_DATO dato); /** Borra una entrada */ -int emufs_indice_b_borrar(INDICE *idx, CLAVE k); +int emufs_indice_b_borrar(INDICE *idx, CLAVE k, INDICE_DATO dato); /** Busca una clave, retorna ubicacion o -1 si no existe */ INDICE_DATO emufs_indice_b_buscar(INDICE *idx, CLAVE clave); INDICE_DATO *emufs_indice_b_buscar_muchos(INDICE *idx, CLAVE clave, int *cant); +CLAVE emufs_indice_b_obtener_menor_clave(INDICE *idx); + +CLAVE emufs_indice_b_obtener_mayor_clave(INDICE *idx); + +/* Private! */ +/** Lee un nodo desde el archivo */ +char *b_leer_nodo(INDICE *idx, int id); + +/** Lee el header de un nodo y lo guarda en header */ +void b_leer_header(char *src, B_NodoHeader *header); + +/** Retorna el array de claves del nodo (esta data modifica directamente el bloque + * por eso no es necesario usar un actualizar_claves + */ +B_NodoEntry *b_leer_claves(char *src, B_NodoHeader *header); + +CLAVE emufs_indice_b_obtener_sig_clave(INDICE *idx, CLAVE k); + +int emufs_indice_b_asc_insertar(INDICE *idx, CLAVE clave, INDICE_DATO dato); + #endif