]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs/tipo3_bplus_main.c
al parecer andan bien los insertar y eliminar ordenado en los tipos 1 y 3
[z.facultad/75.06/emufs.git] / emufs / tipo3_bplus_main.c
1 #include <stdio.h>
2 #include <string.h>
3 #include "emufs.h"
4 #include "tipo3.h"
5 #include "indices.h"
6 #include "indice_bplus.h"
7
8
9 char* cargar_registro(char* texto_ini,int len_ini, CLAVE clave, char *texto_fin, int len_fin)
10 {
11         char *reg;
12         reg = (char*)malloc(len_ini+sizeof(CLAVE)+len_fin+1); /* +1 para el \0 */
13         memcpy(reg, texto_ini, len_ini);
14         memcpy(reg+len_ini, &clave, sizeof(CLAVE));
15         strcpy(reg+len_ini+sizeof(CLAVE), texto_fin);
16         return reg;
17 }
18
19
20 void imprimir_reg(char* reg, int off, int len)
21 {
22         CLAVE clave;
23         int i;
24         memcpy(&clave, reg+off, sizeof(CLAVE));
25         printf("CLAVE = %d\n", clave);
26         printf("REGISTRO =");
27         for(i=0; i<len; i++) printf("%c",reg[i]);
28                 printf("\n");
29         printf("TAMANIO REGISTRO = %d\n\n", len);
30 }
31
32
33
34 int main (int argc,char* argv[])
35 {
36         CLAVE clave;
37         char *texto, *texto2;
38         char *r;
39         EMUFS *emu;
40         int tam_nodo = SIZE_B_PLUS_HEADER + sizeof(CLAVE)*5 + sizeof(CLAVE)*6;
41         EMUFS_REG_SIZE len;
42         int err=0, i;
43         
44         texto = "PARTE COSNSTANTE, clave =";
45         texto2= "FIN DE REGISTRO DE LONG CONSTANTE LO HAGO MAS LARGO PARA PROBAR CUANDO SE PARTE UN BLOQUE";
46         printf("TAMANIO DE LOS REGISTROS = %d\n",strlen(texto)+sizeof(CLAVE)+strlen(texto2));
47         emu = emufs_crear("test",T3,512,strlen(texto)+sizeof(CLAVE)+strlen(texto2));
48         emufs_agregar_indice(emu,"claveidx",IND_PRIMARIO,IND_B_PLUS,IDX_INT,strlen(texto),tam_nodo);
49         
50         
51 /*REGISTRO 1*/  
52         clave.i_clave = 77;     
53         r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
54         imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
55         len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
56         emufs_tipo3_insertar_ordenado(emu, r, len, &err);
57         PERR("REGISTRO 1 GRABADO");
58         free(r);
59
60 /*REGISTRO 2*/  
61         clave.i_clave = 90;     
62         r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
63         imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
64         len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
65         emufs_tipo3_insertar_ordenado(emu, r, len, &err);
66         PERR("REGISTRO 2 GRABADO");
67         free(r);
68
69 /*REGISTRO 3    */
70         clave.i_clave = 95;     
71         r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
72         imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
73         len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
74         emufs_tipo3_insertar_ordenado(emu, r, len, &err);
75         PERR("REGISTRO 3 GRABADO");
76         free(r);
77         
78 /*REGISTRO 4    */
79         clave.i_clave = 99;     
80         r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
81         imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
82         len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
83         emufs_tipo3_insertar_ordenado(emu, r, len, &err);
84         free(r);
85
86 /*REGISTRO 5    */
87         clave.i_clave = 102;    
88         r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
89         imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
90         len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
91         emufs_tipo3_insertar_ordenado(emu, r, len, &err);
92         PERR("REGISTRO 5 GRABADO");
93         free(r);
94
95 /*REGISTRO 6*/  
96         clave.i_clave = 93;     
97         r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
98         imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
99         len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
100         emufs_tipo3_insertar_ordenado(emu, r, len, &err);
101         PERR("REGISTRO 6 GRABADO");
102         free(r);
103
104 /*REGISTRO 7*/  
105         clave.i_clave = 80;     
106         r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
107         imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
108         len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
109         emufs_tipo3_insertar_ordenado(emu, r, len, &err);
110         PERR("REGISTRO 7 GRABADO");
111         free(r);
112
113 /*
114 clave.i_clave = 93;
115 emufs_tipo3_eliminar_ordenado(emu, clave, &err);
116 clave.i_clave = 99;
117 emufs_tipo3_eliminar_ordenado(emu, clave, &err);
118 clave.i_clave = 95;
119 emufs_tipo3_eliminar_ordenado(emu, clave, &err);
120 clave.i_clave = 77;
121 emufs_tipo3_eliminar_ordenado(emu, clave, &err);
122 /*for ( i=0; i<10000; i++){
123         srandom(i);
124         clave.i_clave = random();       
125         r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
126         len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
127         emufs_tipo3_insertar_ordenado(emu, r, len, &err);
128         free(r);
129 }
130 */
131 emufs_destruir(emu);
132
133         return 0;
134         
135 }