/** Representa una clave de longitud variable.
*
- * \TODO Usar abreviaciones
+ * \todo Usar abreviaciones
*/
class ClaveVariable : public Clave {
public :
ClaveVariable (uchar *n);
- ClaveVariable (const std::string &s);
+ ClaveVariable (const std::string &s, uint bd);
virtual ~ClaveVariable () {}
uint Size () const;
uchar *ToArray () const;
+ uchar *ToRaw (uint &size) const;
Clave *Clone () const;
+ bool Abrev (ClaveVariable *c);
+ bool DesAbrev (ClaveVariable *c);
+
virtual bool operator < (const Clave &c) const;
virtual bool operator == (const Clave &c) const;
virtual operator std::string () const {
- std::string out;
- std::stringstream ss;
- ss << data;
- ss >> out;
- return out;
+ return data;
}
private:
+ std::string abreviar(std::string &primera, std::string &actual, int &iguales);
std::string data;
+ std::string raw_data;
};
#endif