]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - src/clave_variable.h
Documentación sobre las operaciones básicas.
[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                 uchar *ToRaw (uint &size) const;
22                 Clave *Clone () const;
23
24                 bool Abrev (ClaveVariable *c);
25                 bool DesAbrev (ClaveVariable *c);
26
27                 virtual bool operator < (const Clave &c) const;
28                 virtual bool operator == (const Clave &c) const;
29                 virtual operator std::string () const {
30                         return data;
31                 }
32         private:
33                 std::string abreviar(std::string &primera, std::string &actual, int &iguales);
34                 std::string data;
35                 std::string raw_data;
36 };
37
38 #endif
39