X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/c1df639f58f6d3c08247c1543916644e375f8ce2..ec7edba15ba5510149162d9998bc1b7146ca249d:/emufs/b_plus.h?ds=sidebyside diff --git a/emufs/b_plus.h b/emufs/b_plus.h index 873b532..7e88a2c 100644 --- a/emufs/b_plus.h +++ b/emufs/b_plus.h @@ -3,25 +3,18 @@ #include #include #include "emufs.h" +#include #define SIZE_B_PLUS_HEADER (sizeof(int)*2) -/** Estructura que define un nodo B+. Para los nodos hojas, el ultimo valor de hijo, serĂ¡ el nro - * de nodo con el que se encadena el actual. (Lista de nodos a nivel hoja. Sequence Set). - */ - -typedef struct _indexspecs_ { - unsigned int tam_bloque; - unsigned int size_claves; - unsigned int size_hijos; - char *filename; -} INDEXSPECS; - typedef struct _index_dat_ { EMUFS_BLOCK_ID num_bloque; CLAVE clave; } INDEX_DAT; +/** Estructura que define un nodo B+. Para los nodos hojas, el ultimo valor de hijo, serĂ¡ el nro + * de nodo con el que se encadena el actual. (Lista de nodos a nivel hoja. Sequence Set). + */ typedef struct nodo_b_plus { int nivel; /** Nivel del nodo */ int cant_claves; /** Cantidad de claves en el nodo */ @@ -29,15 +22,13 @@ typedef struct nodo_b_plus { int *hijos; /** Para nodo interno, ref nodos sucesores. Nodo hoja, ref a nro bloque en .dat */ } NODO_B_PLUS; - /** TODO */ -int emufs_b_plus_crear(INDEXSPECS *idx); -int emufs_b_plus_get_bloque(INDEXSPECS *idx, INDEX_DAT *query); +int emufs_b_plus_crear(INDEX *idx); +int emufs_b_plus_get_bloque(INDEX *idx, INDEX_DAT *query, int num_node); +int emufs_b_plus_insertar(INDEX *idx, INDEX_DAT *query); int emufs_b_plus_actualizar_nodo(INDEX_DAT *dataset); int emufs_b_plus_buscar(); int emufs_b_plus_destuir(); -int b_plus_insertar_clave(INDEXSPECS *, INDEX_DAT *); -int b_plus_insertar(INDEXSPECS *idx, INDEX_DAT *query); -NODO_B_PLUS *b_plus_leer_nodo(INDEXSPECS *idx, int num); +NODO_B_PLUS *b_plus_leer_nodo(INDEX *idx, int num); #endif