X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/2ab8041933e77875de62bc73e76febc528af258e..a4c2bc5e5d6b2a6cfdae3ae0159535deaacd28f4:/src/btree_data.h diff --git a/src/btree_data.h b/src/btree_data.h index ca2cd4d..573de74 100644 --- a/src/btree_data.h +++ b/src/btree_data.h @@ -8,19 +8,48 @@ #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;