/* Verifico que no existe un indice con el mismo nombre */
/* y que no exista un indice primario */
+ PERR("Agregando indice");
tmp = emu->indices;
while (tmp) {
if (strcmp(tmp->nombre, nombre)==0) {
error = 2;
break;
}
+ tmp = tmp->sig;
}
if (tmp != NULL) {
break;
case 2:
PERR("EMUFS ya tiene indice primario!!");
- break;
- default:
- PERR("Error no esperado!!");
}
return 0;
}
/* Creo el nuevo indice */
+ PERR("Creando indice\n");
tmp = emufs_indice_crear(emu, nombre, funcion, tipo, tipo_dato, offset, tam_bloque);
- if (tmp == NULL) return 0;
+ if (tmp == NULL) {
+ PERR("NO SE PUDO CREAR INDICE!!!");
+ return 0;
+ }
if (emu->indices==NULL)
emu->indices = tmp;
return 1;
}
-INDICE_DATO *emufs_buscar_registros(EMUFS *emu, char *indice, CLAVE clave, int *cant)
+INDICE_DATO *emufs_buscar_registros(EMUFS *emu, char *indice, char *data, int *cant)
{
+ CLAVE k;
INDICE *tmp;
+
tmp = emu->indices;
while (tmp) {
if (strcmp(tmp->nombre, indice) == 0) break;
+ tmp = tmp->sig;
}
if (tmp == NULL) {
return NULL;
}
- return tmp->buscar_entradas(tmp, clave, cant);
+ PERR("GENERANDO CLAVE")
+ PERR(data);
+ k = emufs_indice_generar_clave_desde_valor(tmp, data);
+ PERR("DONE");
+ return tmp->buscar_entradas(tmp, k, cant);
}