#include <stdio.h>
#include <string.h>
+#include <math.h>
#include "emufs.h"
#include "fsc.h"
+#include "tipo2.h"
int main(int argc, char *argv[])
{
char h[63];
char i[43];
int err = 0;
- EMUFS_FREE totalfsc = 0;
+ EMUFS_Estadisticas stats;
strcpy(a, "1234567890");
strcpy(b, "REGISTRO NUMERO 2. ESTE REGISTRO ES MUCHO MAS LARGO QUE EL UNO");
n5 = efs->grabar_registro(efs, f, 9, &err);
n6 = efs->grabar_registro(efs, g, 41, &err);
n7 = efs->grabar_registro(efs, h, 63, &err);
+ n8 = efs->grabar_registro(efs, d, 8, &err);
/* Borramos un registro del medio */
- printf("tipo2_main.c >> Borrando registro: %lu\n",n5);
+ /*printf("tipo2_main.c >> Borrando registro: %lu\n",n5);
efs->borrar_registro(efs, n5);
printf("tipo2_main.c >> Borrando registro: %lu\n",n1);
efs->borrar_registro(efs, n1);
printf("tipo2_main.c >> Borrando registro: %lu\n",n7);
efs->borrar_registro(efs, n7);
printf("tipo2_main.c >> Borrando registro: %lu\n",n4);
- efs->borrar_registro(efs, n4);
-
- n8 = efs->grabar_registro(efs, d, 8, &err);
- printf("tipo2_main.c >> Id recuperado: %lu\n",n8);
-
- totalfsc = emufs_fsc_get_total_fs(efs);
- printf("tipo2_main.c >> Total de espacio libre en el .dat: %lu\n",totalfsc);
+ efs->borrar_registro(efs, n4);*/
- registro = efs->leer_registro(efs,n2,®_size,&err);
+ /* Prueba de recompactacion */
+ efs->borrar_registro(efs, n2);
+ efs->borrar_registro(efs, n7);
+ efs->borrar_registro(efs, n4);
+
+ /* Levanto un registro */
+ registro = efs->leer_registro(efs,n1,®_size,&err);
if (err == 0) {
printf("tipo2_main.c >>Registro: %lu Size: %lu Content: %s\n\n",n2,reg_size,registro);
- printf("Total de espacio libre en el .dat: %lu\n",totalfsc);
}
+ /* Obtengo stats */
+ stats = efs->leer_estadisticas(efs);
+ printf("Size del Archivo de datos: %lu\n",stats.tam_archivo_bytes);
+ printf("Cantidad de Registros en el Archivo de datos: %lu\n",stats.tam_archivo);
+ printf("Total de espacio libre en el .dat: %lu\n",stats.total_fs);
+ printf("Minimo espacio libre en bloque o gap: %lu\n",stats.min_fs);
+ printf("Maximo espacio libre en bloque o gap: %lu\n",stats.max_fs);
+ printf("Media de espacio libre en bloque o gap: %lu\n",stats.media_fs);
+ printf("Cantidad en bytes de informacion de control: %lu\n",stats.info_control);
+
+ /* Recompacto */
+ printf("Recompactando...\n");
+ emufs_tipo2_recompactar(efs);
+
+ /* Obtengo stats nevas */
+ stats = efs->leer_estadisticas(efs);
+ printf("Size del Archivo de datos: %lu\n",stats.tam_archivo_bytes);
+ printf("Cantidad de Registros en el Archivo de datos: %lu\n",stats.tam_archivo);
+ printf("Total de espacio libre en el .dat: %lu\n",stats.total_fs);
+ printf("Minimo espacio libre en bloque o gap: %lu\n",stats.min_fs);
+ printf("Maximo espacio libre en bloque o gap: %lu\n",stats.max_fs);
+ printf("Media de espacio libre en bloque o gap: %lu\n",stats.media_fs);
+ printf("Cantidad en bytes de informacion de control: %lu\n",stats.info_control);
+
emufs_destruir(efs);
return 0;