]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/indices.c
Limpio un poco el codigo, sigo debuggeando... cosa rara: inserta los registros orden...
[z.facultad/75.06/emufs.git] / emufs / indices.c
index 207e999c582641564d73c782c4733d3a46bc4edd..c767d6445c471d4a5badcfd955929945a8eb83cb 100644 (file)
@@ -72,6 +72,7 @@ INDICE *emufs_indice_crear(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, IND
                        break;
                case IND_B_PLUS:
                        /* llenar metodos */
                        break;
                case IND_B_PLUS:
                        /* llenar metodos */
+                       /* hacer que la cantidad de claves quede par o impar, no me acuerdo (SAGAR)!!!*/
                        PERR("Creando indice con Arbol B+");
                        tmp->size_claves = (tmp->tam_bloque - SIZE_B_PLUS_HEADER - sizeof(CLAVE))/2;
                        tmp->size_hijos = tmp->size_claves + sizeof(CLAVE);
                        PERR("Creando indice con Arbol B+");
                        tmp->size_claves = (tmp->tam_bloque - SIZE_B_PLUS_HEADER - sizeof(CLAVE))/2;
                        tmp->size_hijos = tmp->size_claves + sizeof(CLAVE);
@@ -244,3 +245,13 @@ void emufs_indice_obtener_valor_desde_clave(INDICE *idx, CLAVE k, void *dst)
        }
 }
 
        }
 }
 
+
+void emufs_indice_borrar(INDICE *primero, CLAVE k, INDICE_DATO dato)
+{
+       INDICE *iter = primero;
+
+       while (iter) {
+               iter->borrar_entrada(iter, k, dato);
+               iter = iter->sig;
+       }
+}