X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/1b6152a8b901df0e8b57c35b9846a6e609b8b7df..a4c2bc5e5d6b2a6cfdae3ae0159535deaacd28f4:/src/clave.h diff --git a/src/clave.h b/src/clave.h index 7cf3ceb..e609bb0 100644 --- a/src/clave.h +++ b/src/clave.h @@ -4,13 +4,27 @@ /* Clave para agregar a un arbol B */ #include "common.h" +#include +/** Clave abstracta para manejo de Claves */ class Clave { public: virtual ~Clave () {} - virtual uint Size () = 0; - virtual uchar *ToArray () = 0; + /** 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. + */ + virtual uchar *ToArray () 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; }; #endif