]> git.llucax.com Git - z.facultad/75.52/treemulator.git/commitdiff
Incremento automatico de block_data.
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Wed, 23 Nov 2005 02:47:02 +0000 (02:47 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Wed, 23 Nov 2005 02:47:02 +0000 (02:47 +0000)
src/btree.cpp
src/btree.h

index 77967bf45ce1471d2a90793753067547f96f7a47..fc62f5ba108079ad1de6177848f5ad49e1ba88f6 100644 (file)
@@ -19,6 +19,7 @@ BTree::BTree (const std::string &name, unsigned int block_size, int tt, int kt,
        header.block_size = block_size;
        header.tree_type = tt;
        header.key_type = kt;
        header.block_size = block_size;
        header.tree_type = tt;
        header.key_type = kt;
+       header.block_data_counter = 0;
        WriteFileHeader ();
 
        /* Creo el primer bloque vacio */
        WriteFileHeader ();
 
        /* Creo el primer bloque vacio */
@@ -100,8 +101,7 @@ void BTree::AddKey (const Clave &k)
        Clave *kout, *in;
 
        in = k.Clone ();
        Clave *kout, *in;
 
        in = k.Clone ();
-       /* TODO : Hacer un contador con recuperacion */
-       in->SetBlockData (0);
+       in->SetBlockData ( GetNextBlockData () );
 
        try {
                kout = AddKeyR (in->Clone (), 0, left, right);
 
        try {
                kout = AddKeyR (in->Clone (), 0, left, right);
@@ -1298,3 +1298,10 @@ int BTree::type () const
 {
        return header.key_type;
 }
 {
        return header.key_type;
 }
+
+uint BTree::GetNextBlockData ()
+{
+       /* TODO : Implementar recuperacion */
+       return header.block_data_counter++;
+}
+
index 6feb5a8e3b700026d9d5bdafaadc97f073c5f5a9..1c08df48b304d42637f715d7da9064d3bc72e5d3 100644 (file)
@@ -210,6 +210,7 @@ struct BTreeFileHeader {
        uint block_size;
        int tree_type;
        int key_type;
        uint block_size;
        int tree_type;
        int key_type;
+       uint block_data_counter;
 };
 
 /** Encabezado de un bloque */
 };
 
 /** Encabezado de un bloque */
@@ -319,6 +320,8 @@ class BTree {
                std::string filename;
                BTreeFileHeader header;
 
                std::string filename;
                BTreeFileHeader header;
 
+               uint GetNextBlockData ();
+
                /** Apunta al archivo de datos, asi se abre solo 1 vez
                 *
                 *  \todo Ver si vale la pena
                /** Apunta al archivo de datos, asi se abre solo 1 vez
                 *
                 *  \todo Ver si vale la pena