]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/btree.h
Agrego clave variable.
[z.facultad/75.52/treemulator.git] / src / btree.h
index 999d7987439274d58bce11bfa26ee854314e471b..a67fa4c4b9d1e086458f80e2cd367869411f448d 100644 (file)
@@ -50,6 +50,7 @@
 #include "common.h"
 #include "clave.h"
 #include "clave_fija.h"
 #include "common.h"
 #include "clave.h"
 #include "clave_fija.h"
+#include "clave_variable.h"
 #include "btree_data.h"
 
 /* alias para codear menos :) */
 #include "btree_data.h"
 
 /* alias para codear menos :) */
@@ -86,14 +87,22 @@ struct BTreeNodeHeader {
  */
 class BTree {
        public:
  */
 class BTree {
        public:
-               BTree (const std::string &filename, unsigned int block_size, bool create_new_file = false);
+               BTree (const std::string &filename, unsigned int block_size, int k_t = KEY_FIXED, bool create_new_file = false);
                ~BTree ();
 
                ~BTree ();
 
+               /** Tipos de clave a usar */
+               enum {
+                       KEY_FIXED,
+                       KEY_VARIABLE
+               };
+
                void AddKey (const Clave &k);
                void DelKey (const Clave &k);
 
        protected:
                Clave* AddKeyR (const Clave *k, uint node_num, uint &left_child, uint &right_child);
                void AddKey (const Clave &k);
                void DelKey (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);
 
                void WriteFileHeader ();
 
 
                void WriteFileHeader ();
 
@@ -109,6 +118,7 @@ class BTree {
 
                std::string filename;
                BTreeFileHeader header;
 
                std::string filename;
                BTreeFileHeader header;
+               int key_type;
 
                /** Apunta al archivo de datos, asi se abre solo 1 vez
                 *
 
                /** Apunta al archivo de datos, asi se abre solo 1 vez
                 *