]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo1.c
Cambios en la estructura de estadisticas discutidos en la lista. POR FAVOR chequeen...
[z.facultad/75.06/emufs.git] / emufs / tipo1.c
index f672c1961c0dacc10dd675e5d9c99e35553a0275..c76311e398d7cded5f06e22408419f97a8226120 100644 (file)
@@ -477,7 +477,7 @@ int emufs_tipo1_borrar_registro(EMUFS* efs, EMUFS_REG_ID reg_id)
 
 EMUFS_Estadisticas emufs_tipo1_leer_estadisticas(EMUFS* efs)
 {
 
 EMUFS_Estadisticas emufs_tipo1_leer_estadisticas(EMUFS* efs)
 {
-       int err = 0;
+       int err = 0,err1 = 0, err2 = 0, err3 = 0;
        EMUFS_Estadisticas stats;
        memset(&stats, 0, sizeof(EMUFS_Estadisticas));
 
        EMUFS_Estadisticas stats;
        memset(&stats, 0, sizeof(EMUFS_Estadisticas));
 
@@ -485,32 +485,40 @@ EMUFS_Estadisticas emufs_tipo1_leer_estadisticas(EMUFS* efs)
                char name_f[255];
                strcpy(name_f, efs->nombre);
                strcat(name_f, ".dat");
                char name_f[255];
                strcpy(name_f, efs->nombre);
                strcat(name_f, ".dat");
-               stats.tam_archivo_bytes = emufs_common_get_file_size(name_f, &err);
+               stats.tam_archivo = emufs_common_get_file_size(name_f, &err);
                if (err) {
                        PERR("no se pudo obtener el tamaño del archivo");
                        return stats;
                }
        }
 
                if (err) {
                        PERR("no se pudo obtener el tamaño del archivo");
                        return stats;
                }
        }
 
-       /* obtengo cantidad de bloques */
-       stats.cant_bloques = (stats.tam_archivo_bytes - emufs_tipo1_header_size())
+       /* obtengo cantidad de bloques en el archivo */
+       stats.cant_bloques = (stats.tam_archivo - emufs_tipo1_header_size())
                        / efs->tam_bloque;
 
        /* obtengo la cantidad de registros en el archivo */
        {
                        / efs->tam_bloque;
 
        /* obtengo la cantidad de registros en el archivo */
        {
-               EMUFS_REG_ID *tmp = emufs_idx_get(efs, &stats.tam_archivo);
+               EMUFS_REG_ID *tmp = emufs_idx_get(efs, &stats.cant_registros);
                if (tmp) free(tmp); /* libera memoria innecesaria */
        }
 
                if (tmp) free(tmp); /* libera memoria innecesaria */
        }
 
-       /* obtengo total de información de control que guarda el archivo */
-       stats.info_control = emufs_tipo1_header_size() /* cabecera del archivo */
+       /* obtengo información de control que guarda el archivo .dat */
+       stats.tam_info_control_dat = emufs_tipo1_header_size() /* cabecera del archivo */
                        /* mas las cabeceras de todos los registros */
                        /* mas las cabeceras de todos los registros */
-                       + stats.tam_archivo * sizeof(EMUFS_TIPO1_REG_HEADER);
+                       + stats.cant_registros * sizeof(EMUFS_TIPO1_REG_HEADER);
 
        /* obtengo las estadísticas del archivo de espacio libre por bloque */
        stats.total_fs = emufs_fsc_get_total_fs(efs);
        stats.media_fs = emufs_fsc_get_media_fs(efs);
        emufs_fsc_get_max_min_fs(efs, &stats.min_fs, &stats.max_fs);
 
        /* obtengo las estadísticas del archivo de espacio libre por bloque */
        stats.total_fs = emufs_fsc_get_total_fs(efs);
        stats.media_fs = emufs_fsc_get_media_fs(efs);
        emufs_fsc_get_max_min_fs(efs, &stats.min_fs, &stats.max_fs);
+       
+       /* obtengo informacion de control guardada por los archivos auxiliares */
+       stats.tam_archivo_aux = emufs_idx_get_file_size(efs,&err1) + emufs_fsc_get_file_size(efs,&err2)
+                                                       + emufs_did_get_file_size(efs,&err3);
+       if (err1 || err2 || err3) {
+               PERR("Hubo problemas en lectura de filesize archivos auxiliares");
+               return stats;
+       }       
 
        return stats;   
 }
 
        return stats;   
 }
@@ -715,4 +723,3 @@ void emufs_tipo1_leer_bloque_raw(EMUFS *efs, EMUFS_BLOCK_ID id, char **actual, c
        (*siguiente) = emufs_tipo1_leer_bloque(efs, id+1, &err);
        (*size1) = (*size2) = (*size3) = efs->tam_bloque;
 }
        (*siguiente) = emufs_tipo1_leer_bloque(efs, id+1, &err);
        (*size1) = (*size2) = (*size3) = efs->tam_bloque;
 }
-