]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - src/clave_variable.h
fbe501174d6f15e55cecf04438526e5d5adefe1b
[z.facultad/75.52/treemulator.git] / src / clave_variable.h
1
2 #ifndef _CLAVE_VARIABLE_H_
3 #define _CLAVE_VARIABLE_H_
4
5 #include "clave.h"
6 #include <string>
7 #include <sstream>
8
9 /** Representa una clave de longitud variable.
10  *
11  *  \TODO Usar abreviaciones
12  */
13 class ClaveVariable : public Clave {
14         public :
15                 ClaveVariable (uchar *n);
16                 ClaveVariable (const std::string &s);
17                 virtual ~ClaveVariable () {}
18
19                 uint Size () const;
20                 uchar *ToArray () const;
21                 Clave *Clone () const;
22
23                 virtual bool operator < (const Clave &c) const;
24                 virtual bool operator == (const Clave &c) const;
25                 virtual operator std::string () const {
26                         std::string out;
27                         std::stringstream ss;
28                         ss << data;
29                         ss >> out;
30                         return out;
31                 }
32         private:
33                 std::string data;
34 };
35
36 #endif
37