6 #include "indice_bplus.h"
9 char* cargar_registro(char* texto_ini,int len_ini, CLAVE clave, char *texto_fin, int len_fin)
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);
20 void imprimir_reg(char* reg, int off, int len)
24 memcpy(&clave, reg+off, sizeof(CLAVE));
25 printf("CLAVE = %d\n", clave.i_clave);
27 for(i=0; i<len; i++) printf("%c",reg[i]);
29 printf("TAMANIO REGISTRO = %d\n\n", len);
34 int main (int argc,char* argv[])
40 int tam_nodo = SIZE_B_PLUS_HEADER + sizeof(CLAVE)*5 + sizeof(CLAVE)*6;
41 EMUFS_REG_SIZE len, size;
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, 0);
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");
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");
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");
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);
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");
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");
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");
115 emufs_tipo3_eliminar_ordenado(emu, clave, &err);
117 emufs_tipo3_eliminar_ordenado(emu, clave, &err);
119 emufs_tipo3_eliminar_ordenado(emu, clave, &err);
121 emufs_tipo3_eliminar_ordenado(emu, clave, &err);
125 PERR("LEYENDO REGISTRO");
128 r = emufs_tipo3_leer_registro_plus(emu, clave, &size, &err);
129 if (err) PERR(" NO SE LEYO EL REGISTRO");
131 imprimir_reg(r, strlen(texto), size);
134 /*for ( i=0; i<10000; i++){
136 clave.i_clave = random();
137 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
138 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
139 emufs_tipo3_insertar_ordenado(emu, r, len, &err);