]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - src/clave.h
e609bb02d37797d22556b25b83a52c4a2d1566c0
[z.facultad/75.52/treemulator.git] / src / clave.h
1
2 #ifndef _CLAVE_H_
3 #define _CLAVE_H_
4
5 /* Clave para agregar a un arbol B */
6 #include "common.h"
7 #include <string>
8
9 /** Clave abstracta para manejo de Claves */
10 class Clave {
11         public:
12                 virtual ~Clave () {}
13
14                 /** Retorna el tamaño en bytes que ocupa la clave */
15                 virtual uint Size () const = 0;
16                 /** Retorna un array de bytes de Size() de longitud.
17                  * 
18                  *  El contenido del array es la clave en formato RAW
19                  *  para guardar en disco.
20                  */
21                 virtual uchar *ToArray () const = 0;
22                 /** Retorna un clon de la clave actual */
23                 virtual Clave *Clone () const = 0;
24
25                 virtual bool operator < (const Clave &k) const = 0;
26                 virtual bool operator == (const Clave &k) const = 0;
27                 virtual operator std::string () const = 0;
28 };
29
30 #endif
31