]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - src/clave_fija.cpp
tagged 1.1
[z.facultad/75.52/treemulator.git] / src / clave_fija.cpp
1
2 #include <string>
3 #include "clave_fija.h"
4
5 ClaveFija::ClaveFija (int n)
6 {
7         data = n;
8 }
9
10 ClaveFija::ClaveFija (uchar *n)
11 {
12         memcpy (&data, n, sizeof(int));
13         memcpy (&block_data, n+sizeof(int), sizeof(int));
14 }
15
16 uint ClaveFija::Size () const
17 {
18         return sizeof (int)+sizeof(uint);
19 }
20
21 uchar *ClaveFija::ToArray () const
22 {
23         uchar *out;
24         out = new uchar[Size ()];
25         memcpy (out, &data, sizeof(int));
26         memcpy (out+sizeof (int), &block_data, sizeof(int));
27         return out;
28 }
29
30 Clave *ClaveFija::Clone () const
31 {
32         ClaveFija *k = new ClaveFija (*this);
33         return k;
34 }
35
36 bool ClaveFija::operator < (const Clave &c) const
37 {
38         return data < ((ClaveFija&)c).data;
39 }
40
41 bool ClaveFija::operator == (const Clave &c) const
42 {
43         return data == ((ClaveFija&)c).data;
44 }
45                 
46 uchar *ClaveFija::ToRaw (uint &size) const
47 {
48         std::stringstream ss;
49
50         ss << "[";
51         ss << data;
52         ss << "]";
53         ss << "[";
54         ss << block_data;
55         ss << "]";
56
57         std::string s = ss.str ();
58
59         uchar *out = new uchar[s.size ()];
60         memcpy (out, s.c_str (), s.size ());
61
62         size = s.size ();
63         return out;
64 }
65