]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/clave.h
Abreviado de Claves Variables.
[z.facultad/75.52/treemulator.git] / src / clave.h
index 7cf3ceb4e0ca67423703439d36de7a6c5f2c5ace..e609bb02d37797d22556b25b83a52c4a2d1566c0 100644 (file)
@@ -4,13 +4,27 @@
 
 /* Clave para agregar a un arbol B */
 #include "common.h"
+#include <string>
 
+/** 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