]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs/tipo1_main.c
* BUGFIX : estaba guardando claves duplicadas por un error de indice :-P
[z.facultad/75.06/emufs.git] / emufs / tipo1_main.c
1 /* vim: set noexpandtab tabstop=4 shiftwidth=4:
2  *----------------------------------------------------------------------------
3  *                                  emufs
4  *----------------------------------------------------------------------------
5  * This file is part of emufs.
6  *
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
10  * version.
11  *
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
15  * details.
16  *
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:  dom abr 11 03:06:48 ART 2004
22  * Autores: Leandro Lucarella <llucare@fi.uba.ar>
23  *----------------------------------------------------------------------------
24  *
25  * $Id$
26  *
27  */
28
29 /** \file
30  *
31  * Prueba de archivo \ref tipo3.h "tipo3".
32  * 
33  */
34
35 #include "emufs.h"
36
37 int main(int argc, char* argv[]) {
38         EMUFS* efs;
39         char reg1[] = "Hola mundo";
40         char reg2[] = "Adiós mundo cruel";
41         char reg3[] = "EMUFS la rompe!";
42         EMUFS_REG_ID id1;
43         EMUFS_REG_ID id2;
44         EMUFS_REG_ID id3;
45         EMUFS_REG_SIZE size;
46         char* reg;
47         int err = 0;
48
49         if (argc < 3) {
50                 printf("Faltan argumentos! %s [nombre] [tamaño de bloque]\n", argv[0]);
51                 return 1;
52         }
53
54         /* Crea emufs */
55         efs = emufs_crear(argv[1], T1, atoi(argv[2]), 0);
56         if (!efs) {
57                 printf("No se pudo crear el EMUFS.\n");
58                 return 1;
59         }
60
61         /* Lee estadisticas */
62         printf("---------------------------------------------------\n");
63         debug_ver_estadisticas(efs);
64         printf("---------------------------------------------------\n");
65
66         /* Graba registros */
67         id1 = efs->grabar_registro(efs, reg1, sizeof(reg1), &err);
68         if (err) {
69                 printf("No se pudo grabar el registro 1 (%d).\n", err);
70                 goto out;
71         }
72         printf("Se grabó el registro 1 (size: %u) con el id %lu.\n", sizeof(reg1), id1);
73
74         /* Lee estadisticas */
75         printf("---------------------------------------------------\n");
76         debug_ver_estadisticas(efs);
77         printf("---------------------------------------------------\n");
78
79         id2 = efs->grabar_registro(efs, reg2, sizeof(reg2), &err);
80         if (err) {
81                 printf("No se pudo grabar el registro 2 (%d).\n", err);
82                 goto out;
83         }
84         printf("Se grabó el registro 2 (size: %u) con el id %lu.\n", sizeof(reg2), id2);
85
86         /* Lee estadisticas */
87         printf("---------------------------------------------------\n");
88         debug_ver_estadisticas(efs);
89         printf("---------------------------------------------------\n");
90
91         id3 = efs->grabar_registro(efs, reg3, sizeof(reg3), &err);
92         if (err) {
93                 printf("No se pudo grabar el registro 3 (%d).\n", err);
94                 goto out;
95         }
96         printf("Se grabó el registro 3 (size: %u) con el id %lu.\n", sizeof(reg3), id3);
97
98         /* Lee estadisticas */
99         printf("---------------------------------------------------\n");
100         debug_ver_estadisticas(efs);
101         printf("---------------------------------------------------\n");
102
103         /* Lee registros */
104         reg = efs->leer_registro(efs, id1, &size, &err);
105         if (err) {
106                 printf("No se pudo leer el registro 1 (%d).\n", err);
107                 goto out;
108         }
109         printf("El contenido del registro 1 es: '%s'.\n", reg);
110         free(reg);
111
112         reg = efs->leer_registro(efs, id2, &size, &err);
113         if (err) {
114                 printf("No se pudo leer el registro 2 (%d).\n", err);
115                 goto out;
116         }
117         printf("El contenido del registro 2 es: '%s'.\n", reg);
118         free(reg);
119
120         reg = efs->leer_registro(efs, id3, &size, &err);
121         if (err) {
122                 printf("No se pudo leer el registro 3 (%d).\n", err);
123                 goto out;
124         }
125         printf("El contenido del registro 3 es: '%s'.\n", reg);
126         free(reg);
127
128         /* Ve archivos auxiliares */
129         printf("\nArchivos auxiliares:\n\n");
130         ver_archivo_FS(efs);
131         printf("\n--------------------------------------------------\n\n");
132
133         /* Borra registro */
134         err = efs->borrar_registro(efs, id2);
135         if (err) {
136                 printf("No se pudo borrar el registro 2 (%d).\n", err);
137                 goto out;
138         }
139         printf("Registro 2 (id = %lu) borrado!.\n", id2);
140
141         /* Lee estadisticas */
142         printf("---------------------------------------------------\n");
143         debug_ver_estadisticas(efs);
144         printf("---------------------------------------------------\n");
145
146         /* Lee registro 3 (desplazado a izquierda) */
147         reg = efs->leer_registro(efs, id3, &size, &err);
148         if (err) {
149                 printf("No se pudo leer el registro 3 (%d).\n", err);
150                 goto out;
151         }
152         printf("El contenido del registro 3 es: '%s'.\n", reg);
153         free(reg);
154
155         /* Ve archivos auxiliares */
156         printf("\n--------------------------------------------------\n");
157         printf("Archivos auxiliares:\n\n");
158         ver_archivo_FS(efs);
159
160         /* compacta archivo */
161         printf("\n--------------------------------------------------\n");
162         printf("Compactando archivo.......\n\n");
163         efs->compactar(efs);
164
165         /* Lee estadisticas */
166         printf("---------------------------------------------------\n");
167         debug_ver_estadisticas(efs);
168         printf("---------------------------------------------------\n");
169
170         /* Ve archivos auxiliares */
171         printf("Archivos auxiliares:\n\n");
172         ver_archivo_FS(efs);
173         printf("\n--------------------------------------------------\n");
174
175         /* Lee registros */
176         reg = efs->leer_registro(efs, id1, &size, &err);
177         if (err) {
178                 printf("No se pudo leer el registro 1 (%d).\n", err);
179                 goto out;
180         }
181         printf("El contenido del registro 1 es: '%s'.\n", reg);
182         free(reg);
183
184         reg = efs->leer_registro(efs, id3, &size, &err);
185         if (err) {
186                 printf("No se pudo leer el registro 3 (%d).\n", err);
187                 goto out;
188         }
189         printf("El contenido del registro 3 es: '%s'.\n", reg);
190         free(reg);
191
192 out:
193         emufs_destruir(efs);
194         return err;
195
196 }