]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - src/clave_variable.h
Agrego emision de excepsiones en caso de error.
[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                 bool Abrev (ClaveVariable *c);
24                 bool DesAbrev (ClaveVariable *c);
25
26                 virtual bool operator < (const Clave &c) const;
27                 virtual bool operator == (const Clave &c) const;
28                 virtual operator std::string () const {
29                         return data;
30                 }
31         private:
32                 std::string abreviar(std::string &primera, std::string &actual, int &iguales);
33                 std::string data;
34 };
35
36 #endif
37