]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/btree.h
Agrego WriteKeys
[z.facultad/75.52/treemulator.git] / src / btree.h
index 540ac38a931644da178aa849bd7fc5f48734a690..9dbfc547f7082e4fde493e5f76a4fdddc7ea6faf 100644 (file)
 
 #include <iostream>
 #include <string>
 
 #include <iostream>
 #include <string>
+#include <list>
 #include "common.h"
 #include "clave.h"
 #include "common.h"
 #include "clave.h"
+#include "clave_fija.h"
 
 /* alias para codear menos :) */
 
 
 /* alias para codear menos :) */
 
@@ -83,11 +85,11 @@ struct BTreeNodeHeader {
  */
 class BTree {
        public:
  */
 class BTree {
        public:
-               BTree (const char *filename, unsigned int block_size, bool create_new_file = false);
+               BTree (const std::string &filename, unsigned int block_size, bool create_new_file = false);
                ~BTree ();
 
                ~BTree ();
 
-               void AddKey (Clave &k);
-               void DelKey (Clave &k);
+               void AddKey (const Clave &k);
+               void DelKey (const Clave &k);
 
        private:
                void write_tree_header ();
 
        private:
                void write_tree_header ();
@@ -98,6 +100,9 @@ class BTree {
                void ReadNodoHeader (uchar *node, BTreeNodeHeader *header);
                void WriteNodoHeader (uchar *node, BTreeNodeHeader *header);
 
                void ReadNodoHeader (uchar *node, BTreeNodeHeader *header);
                void WriteNodoHeader (uchar *node, BTreeNodeHeader *header);
 
+               std::list<Clave *> ReadKeys (uchar *node, BTreeNodeHeader &node_header);
+               void WriteKeys (uchar *node, BTreeNodeHeader &node_header, std::list<Clave *> &keys);
+
                std::string filename;
                BTreeFileHeader header;
 
                std::string filename;
                BTreeFileHeader header;