1 /* vim: set noexpandtab tabstop=4 shiftwidth=4:
2 *----------------------------------------------------------------------------
4 *----------------------------------------------------------------------------
5 * This file is part of emufs.
7 * emufs is free software; you can redistribute it and/or modify it under the
8 * terms of the GNU General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option) any later
12 * emufs is distributed in the hope that it will be useful, but WITHOUT ANY
13 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
17 * You should have received a copy of the GNU General Public License along
18 * with emufs; if not, write to the Free Software Foundation, Inc., 59 Temple
19 * Place, Suite 330, Boston, MA 02111-1307 USA
20 *----------------------------------------------------------------------------
21 * Creado: Fri Apr 09 18:24:00 ART 2004
22 * Autores: Alan Kennedy <kennedya@3dgames.com.ar>
23 *----------------------------------------------------------------------------
27 /****************************/
28 /* Prueba de archivo TIPO 2 */
29 /****************************/
38 int main(int argc, char *argv[])
41 EMUFS_REG_ID n0, n1, n2, n3, n4, n5, n6, n7, n8, n9;
42 EMUFS_REG_SIZE reg_size;
54 EMUFS_Estadisticas stats;
56 strcpy(a, "1234567890");
57 strcpy(b, "REGISTRO NUMERO 2. ESTE REGISTRO ES MUCHO MAS LARGO QUE EL UNO");
58 strcpy(c, "ABCDEFGHIJKL");
60 strcpy(e, "HOLA soy un registro nuevo, me llamo E");
61 strcpy(f, "yo soy F");
62 strcpy(g, "me llamo G y quiero estar en el bloque 1");
63 strcpy(h, "un registro nuevo que se llama H, acompania a G en el bloque 1");
64 strcpy(i, "me argrego despues de borrar a un registro");
66 /* Creamos el archivo Tipo 2. Pasamos blocksize = 0 y Regsize = 0 pues estar */
68 efs = emufs_crear("articulos", T2, 0, 0);
70 /* Grabamos un par de registros */
71 n0 = efs->grabar_registro(efs, a, 11, &err);
72 n1 = efs->grabar_registro(efs, b, 63, &err);
73 n2 = efs->grabar_registro(efs, c, 13, &err);
74 n3 = efs->grabar_registro(efs, d, 8, &err);
75 n4 = efs->grabar_registro(efs, e, 39, &err);
76 n5 = efs->grabar_registro(efs, f, 9, &err);
77 n6 = efs->grabar_registro(efs, g, 41, &err);
78 n7 = efs->grabar_registro(efs, h, 63, &err);
79 n8 = efs->grabar_registro(efs, d, 8, &err);
81 /* Borramos un registro del medio */
82 /*printf("tipo2_main.c >> Borrando registro: %lu\n",n5);
83 efs->borrar_registro(efs, n5);
84 printf("tipo2_main.c >> Borrando registro: %lu\n",n1);
85 efs->borrar_registro(efs, n1);
86 printf("tipo2_main.c >> Borrando registro: %lu\n",n0);
87 efs->borrar_registro(efs, n0);
88 printf("tipo2_main.c >> Borrando registro: %lu\n",n3);
89 efs->borrar_registro(efs, n3);
90 printf("tipo2_main.c >> Borrando registro: %lu\n",n7);
91 efs->borrar_registro(efs, n7);
92 printf("tipo2_main.c >> Borrando registro: %lu\n",n4);
93 efs->borrar_registro(efs, n4);*/
95 /* Prueba de recompactacion */
96 efs->borrar_registro(efs, n7);
97 efs->borrar_registro(efs, n4);
98 efs->borrar_registro(efs, n2);
100 n9 = efs->grabar_registro(efs, d, 8, &err);
102 /* Levanto un registro */
103 registro = efs->leer_registro(efs,n1,®_size,&err);
105 printf("tipo2_main.c >>Registro: %lu Size: %lu Content: %s\n\n",n2,reg_size,registro);
107 if (registro) free(registro);
110 stats = efs->leer_estadisticas(efs);
111 printf("Size del Archivo de datos: %lu\n",stats.tam_archivo_bytes);
112 printf("Cantidad de Registros en el Archivo de datos: %lu\n",stats.tam_archivo);
113 printf("Total de espacio libre en el .dat: %lu\n",stats.total_fs);
114 printf("Minimo espacio libre en bloque o gap: %lu\n",stats.min_fs);
115 printf("Maximo espacio libre en bloque o gap: %lu\n",stats.max_fs);
116 printf("Media de espacio libre en bloque o gap: %lu\n",stats.media_fs);
117 printf("Cantidad en bytes de informacion de control: %lu\n",stats.info_control);
118 printf("Cantidad de bytes en datos: %lu\n",stats.tam_datos_bytes);
121 printf("Recompactando...\n");
124 /* Obtengo stats nevas */
125 stats = efs->leer_estadisticas(efs);
126 printf("Size del Archivo de datos: %lu\n",stats.tam_archivo_bytes);
127 printf("Cantidad de Registros en el Archivo de datos: %lu\n",stats.tam_archivo);
128 printf("Total de espacio libre en el .dat: %lu\n",stats.total_fs);
129 printf("Minimo espacio libre en bloque o gap: %lu\n",stats.min_fs);
130 printf("Maximo espacio libre en bloque o gap: %lu\n",stats.max_fs);
131 printf("Media de espacio libre en bloque o gap: %lu\n",stats.media_fs);
132 printf("Cantidad en bytes de informacion de control: %lu\n",stats.info_control);
133 printf("Cantidad de bytes en datos: %lu\n",stats.tam_datos_bytes);