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