unsigned int item_count;
};
-/** Crea un nuevo arbol B
+/** Modelo del árbol B
*
* \param filename Nombre del archivo a crear
* \param block_size Tamaño de bloque a utilizar
+ * \param k_t Tipo de clave a utilizar
* \return Un nuevo arbol B creado o NULL en caso de error
*/
class BTree {
KEY_VARIABLE
};
+ /** Agrega una nueva clave al árbol. */
void AddKey (const Clave &k);
+ /** Elimina una clave del árbol. */
void DelKey (const Clave &k);
- /* TODO : Deberia retornar algun tipo de dato */
+ /** Busca si existe una clave en el árbol
+ *
+ * \TODO : Deberia retornar algun tipo de dato
+ */
bool FindKey (const Clave &k);
protected:
#include "clave_fija.h"
#include "clave_variable.h"
-/** Dato a guardar en los nodos */
+/** Dato a guardar en los nodos de un árbol B
+ *
+ * Esta clase es la "magia" de todo. Es la encargada de transformar
+ * datos RAW sacados de un bloque del archivo que representa un árbol B
+ * y convertirlos en datos cómodos de manejar desde el programa.
+ *
+ * Esta clase en la más genérica de todos y utilizada en los nodos internos
+ * del árbol, que contiene claves y punteros a hijos.
+ *
+ * También es quién abstrae el uso de distintos tipo de claves al árbol.
+ */
class BTreeData {
public:
BTreeData () {}
+ /** Crea una instancia a partir de un bloque RAW
+ *
+ * \param node Bloque RAW desde donde leer.
+ * \param tree_type Tipo de clave utilizada por el árbol.
+ */
BTreeData (uchar *node, int tree_type);
+ /** Crea una instancia.
+ *
+ * \param k Clave a contener.
+ * \param hijo Hijo derecho.
+ */
BTreeData (Clave *k, uint child);
+ /** Destructor */
virtual ~BTreeData ();
+ /** Retorna el tamaño en bytes que ocupa en RAW */
virtual uint Size () const;
+ /** Retorna un array RAW de bytes con el contenido
+ *
+ * El array retornado debe ser liberado por el programador.
+ */
virtual uchar *ToArray () const;
+ /** Retorna la clave manejada */
Clave* getClave () { return clave; }
+ /** Retorna el hijo apuntado */
uint getChild () { return hijo; }
+ /** Setea el hijo apuntado */
void setChild (uint c) { hijo = c; }
bool operator < (const BTreeData &data) const;