EMUFS_BLOCK_SIZE offset; /* offset del bloque leído */
EMUFS_REG_ID reg_id;
EMUFS_TIPO1_REG_HEADER curr_reg_header; /* cabecera del registro a leer */
-
- block_id = emufs_idx_buscar_registro(efs, reg_id);
+ INDICE_DATO dato;
+
+ if (efs->indices != NULL) {
+ /* TODO : Verificar donde esta el indice primario */
+ dato = efs->indices->existe_entrada(efs->indices, clave);
+ block_id = dato.bloque;
+ reg_id = dato.id;
+ } else {
+ /* TODO ID de donde lo puedo sacar :-) , lo cargo en CLAVE ? */
+ block_id = emufs_idx_buscar_registro(efs, reg_id);
+ }
if (block_id == EMUFS_NOT_FOUND) {
PERR("Registro no encontrado");
*err = EMUFS_NOT_FOUND;
EMUFS_BLOCK_ID curr_block_id;
/* tamaño de la porción de registro que se guarda */
EMUFS_REG_SIZE chunk_size = 0;
+ INDICE_DATO idx_data;
/* obtengo identificador que corresponderá al registro */
header.id = emufs_idx_get_new_id(efs, err);
PERR("No se pudo agregar idx");
return EMUFS_NOT_FOUND;
}
+ idx_data.id = header.id;
+ idx_data.bloque = block_id;
+ emufs_indice_agregar(efs->indices, reg, idx_data);
return header.id;
}