]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/btree_data.cpp
Paso el uso de BTreeData a heap.
[z.facultad/75.52/treemulator.git] / src / btree_data.cpp
index dd6f709b770d9d57d15b86bbaf220a0c2aa22bd7..46917d6f1c5b2a31187b03db5b0b4ccb4a9abeb9 100644 (file)
@@ -12,23 +12,32 @@ BTreeData::BTreeData (uchar *node)
        memcpy (&hijo, node, sizeof (uint));
 }
 
        memcpy (&hijo, node, sizeof (uint));
 }
 
+BTreeData::BTreeData (Clave *k, uint child)
+{
+       clave = k;
+       hijo = child;
+}
+
 BTreeData::~BTreeData ()
 {
 }
 
 BTreeData::~BTreeData ()
 {
 }
 
-uint BTreeData::Size ()
+uint BTreeData::Size () const
 {
        uint s = sizeof (uint);
        if (clave) s += clave->Size ();
 {
        uint s = sizeof (uint);
        if (clave) s += clave->Size ();
-
+       else std::cout << "No tengo clave\n";
        return s;
 }
 
        return s;
 }
 
-uchar* BTreeData::ToArray ()
+uchar* BTreeData::ToArray () const
 {
        uchar *out = new uchar[Size()];
 {
        uchar *out = new uchar[Size()];
-       memcpy (out, clave->ToArray (), clave->Size ());
-       memcpy (out+clave->Size (), &hijo, sizeof (uint));
+       if (clave) {
+               memcpy (out, clave->ToArray (), clave->Size ());
+               memcpy (out+clave->Size (), &hijo, sizeof (uint));
+       } else
+               memcpy (out, &hijo, sizeof (uint));
        return out;
 }
 
        return out;
 }
 
@@ -42,13 +51,38 @@ BTreeLeafData::~BTreeLeafData ()
 {
 }
 
 {
 }
 
-uint BTreeLeafData::Size ()
+uint BTreeLeafData::Size () const
 {
 {
+       if (!clave) {
+               std::cout << "BTreeLeafData::Size : No tengo clave!" << std::endl;
+               return 0;
+       }
        return clave->Size ();
 }
 
        return clave->Size ();
 }
 
-uchar* BTreeLeafData::ToArray ()
+uchar* BTreeLeafData::ToArray () const
 {
        return clave->ToArray ();
 }
 
 {
        return clave->ToArray ();
 }
 
+BTreeChildData::BTreeChildData (uchar *node)
+{
+       memcpy (&hijo, node, sizeof (uint));
+}
+
+BTreeChildData::~BTreeChildData ()
+{
+}
+
+uint BTreeChildData::Size () const
+{
+       return sizeof (uint);
+}
+
+uchar* BTreeChildData::ToArray () const
+{
+       uchar *out = new uchar[Size()];
+       memcpy (out, &hijo, sizeof (uint));
+       return out;
+}
+