]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/btree.h
DoxyDoc.
[z.facultad/75.52/treemulator.git] / src / btree.h
index a67fa4c4b9d1e086458f80e2cd367869411f448d..afcec63f0198033268c263583dcf2be7a0bafe11 100644 (file)
@@ -79,10 +79,11 @@ struct BTreeNodeHeader {
        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 {
@@ -96,13 +97,21 @@ 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);
+               /** Busca si existe una clave en el árbol
+                *
+                * \TODO : Deberia retornar algun tipo de dato
+                */
+               bool FindKey (const Clave &k);
 
        protected:
                Clave* AddKeyR (const Clave *k, uint node_num, uint &left_child, uint &right_child);
                Clave* AddKeyOtherR (const Clave *k, uint node_num, uint &left_child, uint &right_child);
                Clave* AddKeyLeafR (const Clave *k, uint node_num, uint &left_child, uint &right_child);
+               bool FindKeyR (const Clave *k, uint node);
 
                void WriteFileHeader ();
 
@@ -116,6 +125,8 @@ class BTree {
                std::list<BTreeData *> ReadKeys (uchar *node, BTreeNodeHeader &node_header);
                void WriteKeys (uchar *node, BTreeNodeHeader &node_header, std::list<BTreeData *> &keys);
 
+               void DeleteKeys (std::list<BTreeData *> &keys);
+
                std::string filename;
                BTreeFileHeader header;
                int key_type;