]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/clave_fija.cpp
Recuperacion de nodos eliminados.
[z.facultad/75.52/treemulator.git] / src / clave_fija.cpp
index 05c98143d3a406295b49cb768fe8bfa24e0f76d2..71f6f0d5d99847bb84e07a5d1922ee8faef57c28 100644 (file)
@@ -2,16 +2,51 @@
 #include <string>
 #include "clave_fija.h"
 
-uint ClaveFija::Size ()
+ClaveFija::ClaveFija (int n, uint bd)
 {
-       return sizeof (int);
+       data = n;
+       block_data = bd;
 }
 
-uchar *ClaveFija::ToArray ()
+ClaveFija::ClaveFija (uchar *n)
+{
+       memcpy (&data, n, sizeof(int));
+       memcpy (&block_data, n+sizeof(int), sizeof(int));
+}
+
+uint ClaveFija::Size () const
+{
+       return sizeof (int)+sizeof(uint);
+}
+
+uchar *ClaveFija::ToArray () const
 {
        uchar *out;
-       out = new uchar[sizeof(int)];
+       out = new uchar[Size ()];
        memcpy (out, &data, sizeof(int));
+       memcpy (out+sizeof (int), &block_data, sizeof(int));
        return out;
 }
 
+Clave *ClaveFija::Clone () const
+{
+       ClaveFija *k = new ClaveFija (*this);
+       return k;
+}
+
+bool ClaveFija::operator < (const Clave &c) const
+{
+       return data < ((ClaveFija&)c).data;
+}
+
+bool ClaveFija::operator == (const Clave &c) const
+{
+       return data == ((ClaveFija&)c).data;
+}
+               
+uchar *ClaveFija::ToRaw (uint &size) const
+{
+       size = Size ();
+       return ToArray ();
+}
+