#ifndef _CLAVE_H_
#define _CLAVE_H_
-/* Clave para agregar a un arbol B */
#include "common.h"
#include <string>
-/** Clave abstracta para manejo de Claves */
+/** Clase abstracta para manejo de Claves */
class Clave {
public:
virtual ~Clave () {}
- /** Retorna el tamaño en bytes que ocupa la clave */
+ /** Retorna el tamaño en bytes que ocupa la clave */
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 *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 bool operator == (const Clave &k) const = 0;
virtual operator std::string () const = 0;
+ protected:
+ uint block_data;
};
#endif