]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/clave.h
Reemplaza <> por [] en la documentación para que no se vuelva loco el HTML.
[z.facultad/75.52/treemulator.git] / src / clave.h
index 18afab709dacb578eacc33624f44d7867847bddd..27e948780d3ca50693d80e11fb6a139d30302a36 100644 (file)
@@ -2,20 +2,34 @@
 #ifndef _CLAVE_H_
 #define _CLAVE_H_
 
 #ifndef _CLAVE_H_
 #define _CLAVE_H_
 
-/* Clave para agregar a un arbol B */
 #include "common.h"
 #include <string>
 
 #include "common.h"
 #include <string>
 
+/** Clase abstracta para manejo de Claves */
 class Clave {
        public:
                virtual ~Clave () {}
 
 class Clave {
        public:
                virtual ~Clave () {}
 
+               /** Retorna el tamaño en bytes que ocupa la clave */
                virtual uint Size () const = 0;
                virtual uint Size () const = 0;
+               /** Retorna un array de bytes de Size() de longitud.
+                * 
+                *  El contenido del array es la clave en formato RAW
+                *  para guardar en disco.
+                *
+                *  El array debe ser liberado por el llamador.
+                */
                virtual uchar *ToArray () const = 0;
                virtual uchar *ToArray () const = 0;
+               virtual uchar *ToRaw (uint &size) const = 0;
+
+               /** Retorna un clon de la clave actual */
                virtual Clave *Clone () const = 0;
 
                virtual bool operator < (const Clave &k) const = 0;
                virtual Clave *Clone () const = 0;
 
                virtual bool operator < (const Clave &k) const = 0;
+               virtual bool operator == (const Clave &k) const = 0;
                virtual operator std::string () const = 0;
                virtual operator std::string () const = 0;
+       protected:
+               uint block_data;
 };
 
 #endif
 };
 
 #endif