#include <stdio.h>
#include <string.h>
+#include <math.h>
#include "emufs.h"
#include "fsc.h"
+#include "tipo2.h"
int main(int argc, char *argv[])
{
EMUFS *efs;
- EMUFS_REG_ID n0, n1, n2, n3, n4, n5, n6, n7, n8;
+ EMUFS_REG_ID n0, n1, n2, n3, n4, n5, n6, n7, n8, n9;
EMUFS_REG_SIZE reg_size;
char *registro;
char a[11];
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);
+ efs->borrar_registro(efs, n4);*/
- totalfsc = emufs_fsc_get_total_fs(efs);
- printf("tipo2_main.c >> Total de espacio libre en el .dat: %lu\n",totalfsc);
+ /* Prueba de recompactacion */
+ efs->borrar_registro(efs, n7);
+ efs->borrar_registro(efs, n4);
+ efs->borrar_registro(efs, n2);
- registro = efs->leer_registro(efs,n2,®_size,&err);
+ n9 = efs->grabar_registro(efs, d, 8, &err);
+
+ /* 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);
}
+ if (registro) free(registro);
+
+ /* 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);
+ printf("Cantidad de bytes en datos: %lu\n",stats.tam_datos_bytes);
+
+ /* Recompacto */
+ printf("Recompactando...\n");
+ efs->compactar(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);
+ printf("Cantidad de bytes en datos: %lu\n",stats.tam_datos_bytes);
emufs_destruir(efs);