]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - src/clave_variable.cpp
Agrego métodos y atributos al diagrama de clases.
[z.facultad/75.52/treemulator.git] / src / clave_variable.cpp
1
2 #include <string>
3 #include "clave_variable.h"
4 #include <iostream>
5
6 ClaveVariable::ClaveVariable (const std::string &s)
7 {
8         data = s;
9 }
10
11 ClaveVariable::ClaveVariable (uchar *n)
12 {
13         uint len;
14
15         memcpy (&len, n, sizeof (uint));
16         uchar *str = new uchar[len+1];
17         n += sizeof (uint);
18         memcpy (str, n, sizeof (uchar)*len);
19         str[len] = '\0';
20         data = std::string ((const char *)(str));
21         delete [] str;
22 }
23
24 uint ClaveVariable::Size () const
25 {
26         return data.size ()+sizeof (uint);
27 }
28
29 uchar *ClaveVariable::ToArray () const
30 {
31         uchar *out;
32         uint len = data.size ();
33         out = new uchar[Size ()];
34         memcpy (out, &len, sizeof (uint));
35         memcpy (out+sizeof(uint), data.c_str (), data.size ());
36         return out;
37 }
38
39 Clave *ClaveVariable::Clone () const
40 {
41         ClaveVariable *k = new ClaveVariable (*this);
42         return k;
43 }
44
45 bool ClaveVariable::operator < (const Clave &c) const
46 {
47         return data < ((ClaveVariable&)c).data;
48 }
49
50 bool ClaveVariable::operator == (const Clave &c) const
51 {
52         return data == ((ClaveVariable&)c).data;
53 }
54