X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/78ac68dcad2dc4582213848e8d1a98e3b16abff1..HEAD:/src/clave.h?ds=inline diff --git a/src/clave.h b/src/clave.h index 18afab7..cbf0cc4 100644 --- a/src/clave.h +++ b/src/clave.h @@ -2,20 +2,37 @@ #ifndef _CLAVE_H_ #define _CLAVE_H_ -/* Clave para agregar a un arbol B */ #include "common.h" #include +/** Clase abstracta para manejo de Claves */ class Clave { public: virtual ~Clave () {} + void SetBlockData (int i) { block_data = i; } + uint GetBlockData () { return block_data; } + + /** 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