]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* Se agregan a tipo123 los metodos emufs_tipoX_modificar_registro
authorRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 14 Apr 2004 07:05:14 +0000 (07:05 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 14 Apr 2004 07:05:14 +0000 (07:05 +0000)
 * Se ajustan punteros dentro de EMUFS en los inicializar
 * TODO : Tipo1 modificar no anda por faltante de tipo1_borrar!!
   (lo pongo para que no esten como yo 1 hora sin saber por que
 se cuelga :-D)

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

index 83cf49d32a99ddcc0bdebcf9a6cc1eb5f87b3700..787a5550af9e130c1b9fe6deddd2e827f9197046 100644 (file)
@@ -1,4 +1,4 @@
-CFLAGS=-Wall -g -ansi -pedantic -DDEBUG
+CFLAGS=-Wall -g -ansi -pedantic -DDEBUG 
 LDFLAGS=
 
 EMUFS_COMMON=emufs.o tipo1.o tipo2.o tipo3.o idx.o did.o fsc.o
 LDFLAGS=
 
 EMUFS_COMMON=emufs.o tipo1.o tipo2.o tipo3.o idx.o did.o fsc.o
index 23cc027a87d9d272a7af8022f52ee997bfddcc0e..a511e502acdef9d5de058dd58926aeb13faad664 100644 (file)
@@ -162,7 +162,8 @@ EMUFS *emufs_crear(const char *filename, EMUFS_Tipo tipo, EMUFS_BLOCK_SIZE tam_b
                        efs->grabar_registro = emufs_tipo3_grabar_registro;
                        efs->borrar_registro = emufs_tipo3_borrar_registro;
                        efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
                        efs->grabar_registro = emufs_tipo3_grabar_registro;
                        efs->borrar_registro = emufs_tipo3_borrar_registro;
                        efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
-
+                       efs->modificar_registro = emufs_tipo3_modificar_registro;
+                       fprintf(stderr, "Crear : %p\n", efs->modificar_registro);
                        /* Guarda cabeceras propias. */
                        fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
                        fwrite(&tam_reg, sizeof(EMUFS_REG_SIZE), 1, fp);                        
                        /* Guarda cabeceras propias. */
                        fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
                        fwrite(&tam_reg, sizeof(EMUFS_REG_SIZE), 1, fp);                        
@@ -230,10 +231,12 @@ EMUFS *emufs_abrir(const char *filename)
                                return NULL;
                        }                       
                        /* Asigna punteros a funciones. */                      
                                return NULL;
                        }                       
                        /* Asigna punteros a funciones. */                      
-                       efs->leer_bloque = emufs_tipo3_leer_bloque;
-                       efs->leer_registro = emufs_tipo3_leer_registro;
+                       efs->leer_bloque     = emufs_tipo3_leer_bloque;
+                       efs->leer_registro   = emufs_tipo3_leer_registro;
                        efs->grabar_registro = emufs_tipo3_grabar_registro;
                        efs->borrar_registro = emufs_tipo3_borrar_registro;
                        efs->grabar_registro = emufs_tipo3_grabar_registro;
                        efs->borrar_registro = emufs_tipo3_borrar_registro;
+                       efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
+                       efs->modificar_registro = emufs_tipo3_modificar_registro;
                        break;
        }
 
                        break;
        }
 
index 042fdb42b1b491e8fd7eaec88d767ae48fe36f9e..024839bcf10521d264d985f8c951b91091921085 100644 (file)
@@ -63,7 +63,7 @@ int emufs_tipo1_inicializar(EMUFS* efs)
        efs->leer_bloque     = emufs_tipo1_leer_bloque;
        efs->leer_registro   = emufs_tipo1_leer_registro;
        efs->grabar_registro = emufs_tipo1_grabar_registro;
        efs->leer_bloque     = emufs_tipo1_leer_bloque;
        efs->leer_registro   = emufs_tipo1_leer_registro;
        efs->grabar_registro = emufs_tipo1_grabar_registro;
-       /*efs->borrar_registro = emufs_tipo1_borrar_registro;*/
+       efs->borrar_registro = emufs_tipo1_borrar_registro;
        return 0;
 }
 
        return 0;
 }
 
@@ -303,8 +303,7 @@ int emufs_tipo1_buscar_registro(EMUFS *emu, EMUFS_REG_ID id_reg)
        return -1; /* FIXME Error */
 }
 
        return -1; /* FIXME Error */
 }
 
-int emufs_tipo1_borrar_registro(EMUFS *emu, EMUFS_REG_ID id_reg,
-               EMUFS_REG_SIZE tam_reg)
+int emufs_tipo1_borrar_registro(EMUFS *emu, EMUFS_REG_ID id_reg)
 {
        return -1; /* FIXME Error */
 }
 {
        return -1; /* FIXME Error */
 }
@@ -346,3 +345,9 @@ void emufs_tipo1_escribir_reg_en_memoria(char* dst, EMUFS_REG_ID reg_id,
        /* grabo el registro en el bloque */
        memcpy(dst, reg, reg_size);
 }
        /* grabo el registro en el bloque */
        memcpy(dst, reg, reg_size);
 }
+
+EMUFS_REG_ID emufs_tipo1_modificar_registro(EMUFS *emu, EMUFS_REG_ID id, void *data, EMUFS_REG_SIZE size, int *error)
+{
+       emufs_tipo1_borrar_registro(emu, id);
+       return emufs_tipo1_grabar_registro(emu, data, size, error);
+}
index 00e63d5a82457891a4f0ca182b1f7426107a72ec..d61bcf2ca0c530fc2677cc34113e7392089782a4 100644 (file)
@@ -56,7 +56,10 @@ EMUFS_BLOCK_ID emufs_tipo1_grabar_bloque(EMUFS*, void*, EMUFS_BLOCK_ID, int*);
 
 int emufs_tipo1_buscar_registro(EMUFS*, EMUFS_REG_ID);
 
 
 int emufs_tipo1_buscar_registro(EMUFS*, EMUFS_REG_ID);
 
-int emufs_tipo1_borrar_registro(EMUFS*, EMUFS_REG_ID, EMUFS_REG_SIZE);
+int emufs_tipo1_borrar_registro(EMUFS*, EMUFS_REG_ID);
+
+/** Método para modificar un registro */
+EMUFS_REG_ID emufs_tipo1_modificar_registro(EMUFS *emu, EMUFS_REG_ID, void*, EMUFS_REG_SIZE, int*);
 
 /*
 int emufs_tipo1_buscar_lugar(EMUFS *emu, EMUFS_REG_SIZE tam_reg,
 
 /*
 int emufs_tipo1_buscar_lugar(EMUFS *emu, EMUFS_REG_SIZE tam_reg,
index 2380249a4125a33b157221cdd23d32228c873f18..7047e455f696d3d2c7b959c1c264f71ae5a58e02 100644 (file)
@@ -46,8 +46,9 @@
 int emufs_tipo2_inicializar(EMUFS* efs)
 {
        efs->grabar_registro = emufs_tipo2_grabar_registro;           
 int emufs_tipo2_inicializar(EMUFS* efs)
 {
        efs->grabar_registro = emufs_tipo2_grabar_registro;           
-    efs->borrar_registro = emufs_tipo2_borrar_registro;
+  efs->borrar_registro = emufs_tipo2_borrar_registro;
        efs->leer_registro = emufs_tipo2_leer_registro;
        efs->leer_registro = emufs_tipo2_leer_registro;
+       efs->modificar_registro = emufs_tipo2_modificar_registro;
        
        return 0;
 }
        
        return 0;
 }
@@ -228,3 +229,9 @@ int emufs_tipo2_dummyfill(EMUFS *efs, EMUFS_OFFSET reg_pos, EMUFS_REG_SIZE amoun
        free(dummyfill);
        return (0);
 }
        free(dummyfill);
        return (0);
 }
+
+EMUFS_REG_ID emufs_tipo2_modificar_registro(EMUFS *emu, EMUFS_REG_ID id, void *data, EMUFS_REG_SIZE size, int *error)
+{
+       emufs_tipo2_borrar_registro(emu, id);
+       return emufs_tipo2_grabar_registro(emu, data, size, error);
+}
index e663b7d3b17709bee0b5d437a10e7a71ac9e6f63..f8885ec0b90b33b475035621c22f66f6826a8296 100644 (file)
@@ -116,4 +116,7 @@ int emufs_tipo2_get_regsize(EMUFS *efs, EMUFS_OFFSET reg_pos, EMUFS_REG_SIZE *re
  */
 int emufs_tipo2_dummyfill(EMUFS *efs, EMUFS_OFFSET reg_pos, EMUFS_REG_SIZE amount);
 
  */
 int emufs_tipo2_dummyfill(EMUFS *efs, EMUFS_OFFSET reg_pos, EMUFS_REG_SIZE amount);
 
+/** Método para modificar un registro */
+EMUFS_REG_ID emufs_tipo2_modificar_registro(EMUFS *emu, EMUFS_REG_ID id, void *data, EMUFS_REG_SIZE size, int *error);
+
 #endif /* _EMUFS_TIPO2_H_ */
 #endif /* _EMUFS_TIPO2_H_ */
index 0a457f911e106cb8fd09d8961d021e476d0b1f71..24153cb43484eee962d0f96df17bac1baea89cb5 100644 (file)
@@ -299,6 +299,12 @@ EMUFS_Estadisticas emufs_tipo3_leer_estadisticas(EMUFS *emu)
        stats.info_control = stats.tam_archivo*sizeof(EMUFS_REG_ID) + sizeof(EMUFS_Tipo) + sizeof(EMUFS_BLOCK_SIZE) + sizeof(EMUFS_REG_SIZE);
        stats.media_fs = stats.total_fs/stats.cant_bloques;
        fclose(f);
        stats.info_control = stats.tam_archivo*sizeof(EMUFS_REG_ID) + sizeof(EMUFS_Tipo) + sizeof(EMUFS_BLOCK_SIZE) + sizeof(EMUFS_REG_SIZE);
        stats.media_fs = stats.total_fs/stats.cant_bloques;
        fclose(f);
-       return stats;
-       
+       return stats;   
 }
 }
+
+EMUFS_REG_ID emufs_tipo3_modificar_registro(EMUFS *emu, EMUFS_REG_ID id, void *data, EMUFS_REG_SIZE size, int *error)
+{
+       emufs_tipo3_borrar_registro(emu, id);
+       return emufs_tipo3_grabar_registro(emu, data, size, error);
+}
+
index f99a658ce8cb24e4c9125369571b15dbb85d201c..5e9b5475aa27c8ae7da41aafc7aa73acd3cec9dc 100644 (file)
@@ -62,6 +62,9 @@ int emufs_tipo3_grabar_bloque(EMUFS *emu, void *ptr, EMUFS_BLOCK_ID num_bloque);
 int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
 
 int emufs_tipo3_buscar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
 int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
 
 int emufs_tipo3_buscar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
+       
+/** Método para modificar un registro */
+EMUFS_REG_ID emufs_tipo3_modificar_registro(EMUFS *emu, EMUFS_REG_ID, void*, EMUFS_REG_SIZE, int*);
 
 EMUFS_Estadisticas emufs_tipo3_leer_estadisticas(EMUFS *);
 
 
 EMUFS_Estadisticas emufs_tipo3_leer_estadisticas(EMUFS *);