--- /dev/null
+#ifndef _B_PLUS_H_
+#define _B_PLUS_H_
+#include <stdio.h>
+#include <stdlib.h>
+#include "emufs.h"
+typedef union _clave_b_plus {
+ int num;
+ /*fixme*/
+}CLAVE_B_PLUS;
+
+typedef struct nodo_b_plus {
+ int nivel; /** Nivel del nodo */
+ int cant; /** Cantidad de items en el nodo */
+ int right /** Referencia al nodo derecho */
+ int left; /** Referencia al nodo izquierdo */
+ CLAVE_B_PLUS clave; /** Clave de busqueda e insercion */
+} NODO_B_PLUS;
+
+typedef struct nodo_b_plus_hoja {
+ int nivel; /** Nivel del nodo */
+ int cant; /** Cantidad de claves en el nodo */
+ int offset; /** Distancia hasta el comiezo de la clave */
+ EMUFS_BLOCK_ID bloque; /** Referencia al bloque */
+ EMUFS_REG_ID id_reg; /** Identificador del registro */
+ EMUFS_FREE free_space; /** Espacio libre del bloque */
+ void *dato; /** Cadena contenedora del dato */
+} NODO_B_PLUS_HOJA;
+
+/** TODO */
+int b_plus_crear();
+int b_plus_insertar();
+int b_plus_eliminar();
+int b_plus_buscar();
+int b_plus_destuir();
+
+
+#endif
}
(*size1) = (*size2) = (*size3) = efs->tam_bloque;
}
+
+int emufs_tipo3_insertar_ordenado(EMUFS *emu, void *ptr, CLAVE clave, int *err)
+{
+ FILE *f;
+ char f_name[255];
+ char *bloque;
+
+ strcpy(f_name, emu->nombre);
+ strcat(f_name, ".dat");
+
+
+
+ return 0;
+}
* \param ptr Cadena de datos que contiene el registro a grabar.
* \param err Codigo de error devuelto en caso de falla.
*/
-EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE, int *err);
+EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE reg_size, int *err);
/** Graba el bloque apuntado por \c ptr en el archivo
* \param emu Esructura para manejar los archivos.
*/
void emufs_tipo3_leer_bloque_raw(EMUFS *emu, EMUFS_BLOCK_ID block_id, char **actual, char **anterior, char **siguiente, EMUFS_BLOCK_SIZE *size1, EMUFS_BLOCK_SIZE *size2, EMUFS_BLOCK_SIZE *size3);
+/** Inserta un registro ordenado segun el Arbol B+ lo indique
+ * \param emu Esructura para manejar los archivos.
+ * \param ptr Cadena de datos contenedora del registro.
+ * \param clave Clave de ordenamiento.
+ */
+int emufs_tipo3_insertar_ordenado(EMUFS *emu, void *ptr, CLAVE clave, int *err);
+
#endif /* _EMUFS_TIPO3_H_ */