X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/3ff4788e11c87e1e6c9f43fef629f6079415f548..5565477433b377796908c649d62b17f83adbcb3a:/emufs/tipo1.c diff --git a/emufs/tipo1.c b/emufs/tipo1.c index 76b1e9b..d265f8f 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -116,7 +116,7 @@ void* emufs_tipo1_leer_registro(EMUFS* efs, CLAVE clave, block_id = dato.bloque; reg_id = dato.id; } else { - /* TODO ID de donde lo puedo sacar :-) , lo cargo en CLAVE ? */ + reg_id = clave.i_clave; block_id = emufs_idx_buscar_registro(efs, reg_id); } if (block_id == EMUFS_NOT_FOUND) { @@ -366,19 +366,27 @@ EMUFS_REG_ID emufs_tipo1_grabar_registro(EMUFS* efs, void* reg, return header.id; } -int emufs_tipo1_borrar_registro(EMUFS* efs, EMUFS_REG_ID reg_id) +int emufs_tipo1_borrar_registro(EMUFS* efs, CLAVE k) { char* block; /* bloque leido (en donde está el registro a leer) */ EMUFS_BLOCK_ID block_id; /* id del bloque en donde esta el registro a leer */ EMUFS_BLOCK_SIZE offset; /* offset del bloque leído */ EMUFS_TIPO1_REG_HEADER curr_reg_header; /* cabecera del registro a leer */ + EMUFS_REG_ID reg_id; + INDICE_DATO dato; int err = 0; /* para almacenar código de error */ - block_id = emufs_idx_buscar_registro(efs, reg_id); + /*block_id = emufs_idx_buscar_registro(efs, reg_id); if (block_id == EMUFS_NOT_FOUND) { PERR("Registro no encontrado"); return EMUFS_NOT_FOUND; - } + }*/ + dato = efs->indices->existe_entrada(efs->indices, k); + block_id = dato.bloque; /*emufs_idx_buscar_registro(emu, ID);*/ + reg_id = dato.id; + + if (reg_id == -1) return EMUFS_NOT_FOUND; + if (!(block = (char*) emufs_tipo1_leer_bloque(efs, block_id, &err))) { PERR("no se pudo reservar memoria"); return err; @@ -685,7 +693,7 @@ EMUFS_BLOCK_ID emufs_tipo1_grabar_bloque_fsc(EMUFS *efs, void *block, EMUFS_REG_ID emufs_tipo1_modificar_registro(EMUFS* efs, EMUFS_REG_ID id, void *data, EMUFS_REG_SIZE size, int* err) { - emufs_tipo1_borrar_registro(efs, id); +/* emufs_tipo1_borrar_registro(efs, id);*/ return emufs_tipo1_grabar_registro(efs, data, size, err); }