]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
Se cambia el prototipo de leer_registro() para poder devolver el tamaño del
authorLeandro Lucarella <llucax@gmail.com>
Sun, 11 Apr 2004 02:59:05 +0000 (02:59 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Sun, 11 Apr 2004 02:59:05 +0000 (02:59 +0000)
registro leido.

emufs/emufs.h
emufs/tipo1.c
emufs/tipo1.h
emufs/tipo2.h
emufs/tipo3.c
emufs/tipo3.h

index 6e3fb8316ac81dabbf38927b1b798cf75dcc5f9d..efcc2ad2af93812581de7bd6ebd015fd11821cfe 100644 (file)
@@ -97,7 +97,7 @@ typedef struct _emu_fs_t {
        EMUFS_BLOCK_SIZE tam_bloque; /**< Tamaño de bloque. 0 Si no tiene bloques */
        EMUFS_REG_SIZE tam_reg; /**< Tamaño de registro. 0 Si son registros variables */        
        void* (*leer_bloque)(struct _emu_fs_t*, EMUFS_BLOCK_ID, int*); /**< Método para leer un bloque */
-       void* (*leer_registro)(struct _emu_fs_t*, EMUFS_REG_ID, int*); /**< Método para leer un registro */
+       void* (*leer_registro)(struct _emu_fs_t*, EMUFS_REG_ID, EMUFS_REG_SIZE*, int*); /**< Método para leer un registro */
        EMUFS_REG_ID (*grabar_registro)(struct _emu_fs_t*, void*, EMUFS_REG_SIZE, int*); /**< Método para grabar un registro */
        int (*borrar_registro)(struct _emu_fs_t*, EMUFS_REG_ID); /**< Método para borrar un registro */
        char *nombre; /**< Nombre del archivo */
index db0ccf469243849357d2932fcf717c565d7b93d4..a75967e86941780b76651115fe5dca37ebb24d51 100644 (file)
@@ -69,7 +69,8 @@ int emufs_tipo1_inicializar(EMUFS* efs)
        return 0;
 }
 
-void* emufs_tipo1_leer_registro(EMUFS* efs, EMUFS_REG_ID reg_id, int *err)
+void* emufs_tipo1_leer_registro(EMUFS* efs, EMUFS_REG_ID reg_id,
+               EMUFS_REG_SIZE* reg_size, int *err)
 {
        char* block; /* bloque leido (en donde está el registro a leer) */
        char* registro; /* registro a leer */
@@ -111,6 +112,7 @@ void* emufs_tipo1_leer_registro(EMUFS* efs, EMUFS_REG_ID reg_id, int *err)
                                return NULL;
                        }
                        memcpy(registro, block + offset, curr_reg_size);
+                       *reg_size = curr_reg_size;
                        break;
                }
                /* Desplazo el offset */
@@ -162,7 +164,6 @@ EMUFS_REG_ID emufs_tipo1_grabar_registro(EMUFS* efs, void* reg,
        EMUFS_REG_ID   reg_id;
        EMUFS_FREE     fs;
        EMUFS_BLOCK_ID block_id;
-       FILE*          file;
        char           name_f[255];
        char*          block;
        
index c89daf6f290bc1f512f7b5091c2da2813b6c4f79..cc540a81ea032bfdf5c87d0f9aba3228e6cd4210 100644 (file)
@@ -43,7 +43,7 @@
 int emufs_tipo1_inicializar(EMUFS*);
 
 /** Lee el registro \param id_reg y lo almacena en \param ptr */
-void* emufs_tipo1_leer_registro(EMUFS*, EMUFS_REG_ID, int*);
+void* emufs_tipo1_leer_registro(EMUFS*, EMUFS_REG_ID, EMUFS_REG_SIZE*, int*);
 
 /** Lee el bloque \param num_bloque y lo almacena en \param ptr */
 void* emufs_tipo1_leer_bloque(EMUFS*, EMUFS_BLOCK_ID, int*);
index c4085412e4eec6f0bf00bf14f78e0c8d24c815d0..4f95840835b8cb3393079fd9f35b41de48d003a1 100644 (file)
@@ -43,7 +43,8 @@ EMUFS_REG_ID emufs_tipo2_get_id(EMUFS *);
 int emufs_tipo2_get_regsize(EMUFS *efs, EMUFS_OFFSET n_RegPos,EMUFS_REG_SIZE *n_RegSize);
 int emufs_tipo2_dummyfill(EMUFS *efs, EMUFS_OFFSET n_RegPos,EMUFS_REG_SIZE n_Amount);
 
-/* int emufs_tipo2_leer_registro(EMUFS *, EMUFS_REG_ID , void *, EMUFS_REG_SIZE);
+/* OJO!! Fijate que cambio el prototipo:
+   int emufs_tipo2_leer_registro(EMUFS *, EMUFS_REG_ID , void *, EMUFS_REG_SIZE);
    int emufs_tipo2_buscar_registro(EMUFS *, int); */
 
 #endif /* _EMUFS_TIPO2_H_ */
index 6e1822e170dd5e05e88ed3f0c264241104c4e89f..721d9ef9774c1a5453323e92fb2966ace839ff9f 100644 (file)
@@ -38,7 +38,8 @@
 #include "tipo3.h"
 
 /** Leo un registro del archivo, devuelve cero si no lo encuentra.**/
-void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID, int* err)
+void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID,
+               EMUFS_REG_SIZE* reg_size, int* err)
 {
        char* bloque;
        char* registro; /* registro a leer */
@@ -70,13 +71,13 @@ void* emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID ID, int* err)
                                return NULL;
                        }
                        memcpy(registro,bloque+iterador,emu->tam_reg);
+                       *reg_size = emu->tam_reg;
                        break;
                }
                iterador += emu->tam_reg;
        }
        
        free(bloque);
-       (*err) = emu->tam_reg;
        return registro;
 }
 
index f17081f5fdc754b615df36a696c5c9a5655ffd09..71bcb683448167971145f0c5e34e8cfd837ef813 100644 (file)
@@ -48,7 +48,7 @@
 #include "fsc.h"
 
 /** Lee el registro \param id_reg y lo almacena en \param ptr */
-void* emufs_tipo3_leer_registro(EMUFS*, EMUFS_REG_ID, int*);
+void* emufs_tipo3_leer_registro(EMUFS*, EMUFS_REG_ID, EMUFS_REG_SIZE*, int*);
 
 /** Lee el bloque \param num_bloque y lo almacena en \param ptr */
 void* emufs_tipo3_leer_bloque(EMUFS*, EMUFS_BLOCK_ID, int*);