]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - src/btree_data.h
44a3a775884ca79770308185843d5cb5f3e5275f
[z.facultad/75.52/treemulator.git] / src / btree_data.h
1
2 #ifndef _B_TREE_DATA
3 #define _B_TREE_DATA
4
5 #include <iostream>
6 #include <stdlib.h>
7 #include "clave.h"
8 #include "clave_fija.h"
9
10 /** Dato a guardar en los nodos */
11 class BTreeData {
12         public:
13                 BTreeData () { clave = NULL; }
14                 BTreeData (uchar *node);
15                 virtual ~BTreeData ();
16
17                 virtual uint Size ();
18                 virtual uchar *ToArray ();
19
20                 Clave* getClave () { return clave; }
21
22                 bool operator < (const BTreeData &data) const;
23                 virtual operator std::string () const {
24                         if (clave) {
25                                 return (*clave);
26                         }
27                         return "NoKey";
28                 }
29         protected:
30                 Clave *clave;
31                 uint hijo;
32 };
33
34 /** Dato a guardar en las hojas */
35 class BTreeLeafData:public BTreeData {
36         public:
37                 BTreeLeafData (Clave *k):BTreeData () { clave = k; }
38                 BTreeLeafData (uchar *node) { clave = new ClaveFija (node); }
39                 virtual ~BTreeLeafData ();
40
41                 virtual uint Size ();
42                 virtual uchar *ToArray ();
43 };
44
45 #endif
46