]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs/tipo1_main.c
Insertar B+ en teoria fully working con encadenamiento en hojas y toda la mar en...
[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 #ifdef LA_PALOMA_MENSAJERA
39         EMUFS* efs;
40         char reg1[] = "Hola mundo";
41         char reg2[] = "Adiós mundo cruel";
42         char reg3[] = "EMUFS la rompe!";
43         EMUFS_REG_ID id1;
44         EMUFS_REG_ID id2;
45         EMUFS_REG_ID id3;
46         EMUFS_REG_SIZE size;
47         char* reg;
48         int err = 0;
49
50         if (argc < 3) {
51                 printf("Faltan argumentos! %s [nombre] [tamaño de bloque]\n", argv[0]);
52                 return 1;
53         }
54
55         /* Crea emufs */
56         efs = emufs_crear(argv[1], T1, atoi(argv[2]), 0);
57         if (!efs) {
58                 printf("No se pudo crear el EMUFS.\n");
59                 return 1;
60         }
61
62         /* Lee estadisticas */
63         printf("---------------------------------------------------\n");
64         debug_ver_estadisticas(efs);
65         printf("---------------------------------------------------\n");
66
67         /* Graba registros */
68         id1 = efs->grabar_registro(efs, reg1, sizeof(reg1), &err);
69         if (err) {
70                 printf("No se pudo grabar el registro 1 (%d).\n", err);
71                 goto out;
72         }
73         printf("Se grabó el registro 1 (size: %u) con el id %lu.\n", sizeof(reg1), id1);
74
75         /* Lee estadisticas */
76         printf("---------------------------------------------------\n");
77         debug_ver_estadisticas(efs);
78         printf("---------------------------------------------------\n");
79
80         id2 = efs->grabar_registro(efs, reg2, sizeof(reg2), &err);
81         if (err) {
82                 printf("No se pudo grabar el registro 2 (%d).\n", err);
83                 goto out;
84         }
85         printf("Se grabó el registro 2 (size: %u) con el id %lu.\n", sizeof(reg2), id2);
86
87         /* Lee estadisticas */
88         printf("---------------------------------------------------\n");
89         debug_ver_estadisticas(efs);
90         printf("---------------------------------------------------\n");
91
92         id3 = efs->grabar_registro(efs, reg3, sizeof(reg3), &err);
93         if (err) {
94                 printf("No se pudo grabar el registro 3 (%d).\n", err);
95                 goto out;
96         }
97         printf("Se grabó el registro 3 (size: %u) con el id %lu.\n", sizeof(reg3), id3);
98
99         /* Lee estadisticas */
100         printf("---------------------------------------------------\n");
101         debug_ver_estadisticas(efs);
102         printf("---------------------------------------------------\n");
103
104         /* Lee registros */
105         reg = efs->leer_registro(efs, id1, &size, &err);
106         if (err) {
107                 printf("No se pudo leer el registro 1 (%d).\n", err);
108                 goto out;
109         }
110         printf("El contenido del registro 1 es: '%s'.\n", reg);
111         free(reg);
112
113         reg = efs->leer_registro(efs, id2, &size, &err);
114         if (err) {
115                 printf("No se pudo leer el registro 2 (%d).\n", err);
116                 goto out;
117         }
118         printf("El contenido del registro 2 es: '%s'.\n", reg);
119         free(reg);
120
121         reg = efs->leer_registro(efs, id3, &size, &err);
122         if (err) {
123                 printf("No se pudo leer el registro 3 (%d).\n", err);
124                 goto out;
125         }
126         printf("El contenido del registro 3 es: '%s'.\n", reg);
127         free(reg);
128
129         /* Ve archivos auxiliares */
130         printf("\nArchivos auxiliares:\n\n");
131         ver_archivo_FS(efs);
132         printf("\n--------------------------------------------------\n\n");
133
134         /* Borra registro */
135         err = efs->borrar_registro(efs, id2);
136         if (err) {
137                 printf("No se pudo borrar el registro 2 (%d).\n", err);
138                 goto out;
139         }
140         printf("Registro 2 (id = %lu) borrado!.\n", id2);
141
142         /* Lee estadisticas */
143         printf("---------------------------------------------------\n");
144         debug_ver_estadisticas(efs);
145         printf("---------------------------------------------------\n");
146
147         /* Lee registro 3 (desplazado a izquierda) */
148         reg = efs->leer_registro(efs, id3, &size, &err);
149         if (err) {
150                 printf("No se pudo leer el registro 3 (%d).\n", err);
151                 goto out;
152         }
153         printf("El contenido del registro 3 es: '%s'.\n", reg);
154         free(reg);
155
156         /* Ve archivos auxiliares */
157         printf("\n--------------------------------------------------\n");
158         printf("Archivos auxiliares:\n\n");
159         ver_archivo_FS(efs);
160
161         /* compacta archivo */
162         printf("\n--------------------------------------------------\n");
163         printf("Compactando archivo.......\n\n");
164         efs->compactar(efs);
165
166         /* Lee estadisticas */
167         printf("---------------------------------------------------\n");
168         debug_ver_estadisticas(efs);
169         printf("---------------------------------------------------\n");
170
171         /* Ve archivos auxiliares */
172         printf("Archivos auxiliares:\n\n");
173         ver_archivo_FS(efs);
174         printf("\n--------------------------------------------------\n");
175
176         /* Lee registros */
177         reg = efs->leer_registro(efs, id1, &size, &err);
178         if (err) {
179                 printf("No se pudo leer el registro 1 (%d).\n", err);
180                 goto out;
181         }
182         printf("El contenido del registro 1 es: '%s'.\n", reg);
183         free(reg);
184
185         reg = efs->leer_registro(efs, id3, &size, &err);
186         if (err) {
187                 printf("No se pudo leer el registro 3 (%d).\n", err);
188                 goto out;
189         }
190         printf("El contenido del registro 3 es: '%s'.\n", reg);
191         free(reg);
192
193 out:
194         emufs_destruir(efs);
195 #endif
196         return 0; /*err;*/
197 }