]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - src/btree_data.cpp
Split de nodos
[z.facultad/75.52/treemulator.git] / src / btree_data.cpp
1
2 #include "btree_data.h"
3
4 BTreeData::BTreeData (uchar *node)
5 {
6         /* TODO : Aca deberia detectar el tipo de clave (necesito
7          * info desde el arbol
8          */
9         clave = new ClaveFija (node);
10         node += clave->Size ();
11
12         memcpy (&hijo, node, sizeof (uint));
13 }
14
15 BTreeData::~BTreeData ()
16 {
17 }
18
19 uint BTreeData::Size ()
20 {
21         uint s = sizeof (uint);
22         if (clave) s += clave->Size ();
23
24         return s;
25 }
26
27 uchar* BTreeData::ToArray ()
28 {
29         uchar *out = new uchar[Size()];
30         memcpy (out, clave->ToArray (), clave->Size ());
31         memcpy (out+clave->Size (), &hijo, sizeof (uint));
32         return out;
33 }
34
35 bool BTreeData::operator < (const BTreeData &data) const
36 {
37         return (*clave) < (*(data.clave));
38 }
39
40
41 BTreeLeafData::~BTreeLeafData ()
42 {
43 }
44
45 uint BTreeLeafData::Size ()
46 {
47         return clave->Size ();
48 }
49
50 uchar* BTreeLeafData::ToArray ()
51 {
52         return clave->ToArray ();
53 }
54