]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/btree_data.h
Split de nodos
[z.facultad/75.52/treemulator.git] / src / btree_data.h
index d920c9f208b58b064d0c856c360989c127a04bcb..44a3a775884ca79770308185843d5cb5f3e5275f 100644 (file)
 /** Dato a guardar en los nodos */
 class BTreeData {
        public:
 /** Dato a guardar en los nodos */
 class BTreeData {
        public:
-               BTreeData () {}
+               BTreeData () { clave = NULL; }
                BTreeData (uchar *node);
                virtual ~BTreeData ();
 
                virtual uint Size ();
                virtual uchar *ToArray ();
                BTreeData (uchar *node);
                virtual ~BTreeData ();
 
                virtual uint Size ();
                virtual uchar *ToArray ();
+
+               Clave* getClave () { return clave; }
+
+               bool operator < (const BTreeData &data) const;
+               virtual operator std::string () const {
+                       if (clave) {
+                               return (*clave);
+                       }
+                       return "NoKey";
+               }
        protected:
                Clave *clave;
                uint hijo;
        protected:
                Clave *clave;
                uint hijo;
@@ -25,6 +35,7 @@ class BTreeData {
 class BTreeLeafData:public BTreeData {
        public:
                BTreeLeafData (Clave *k):BTreeData () { clave = k; }
 class BTreeLeafData:public BTreeData {
        public:
                BTreeLeafData (Clave *k):BTreeData () { clave = k; }
+               BTreeLeafData (uchar *node) { clave = new ClaveFija (node); }
                virtual ~BTreeLeafData ();
 
                virtual uint Size ();
                virtual ~BTreeLeafData ();
 
                virtual uint Size ();