]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - src/clave_fija.cpp
UNDO: Cambio constructor por metodo estatico.
[z.facultad/75.52/treemulator.git] / src / clave_fija.cpp
index ebb08ea2a7594aea6f3ad63974e2813514a188ed..ea8c09e6763f8f42db9ae4f4feaa256b37c2e473 100644 (file)
@@ -10,18 +10,20 @@ ClaveFija::ClaveFija (int n)
 ClaveFija::ClaveFija (uchar *n)
 {
        memcpy (&data, n, sizeof(int));
+       memcpy (&block_data, n+sizeof(int), sizeof(int));
 }
 
 uint ClaveFija::Size () const
 {
-       return sizeof (int);
+       return sizeof (int)+sizeof(uint);
 }
 
 uchar *ClaveFija::ToArray () const
 {
        uchar *out;
-       out = new uchar[sizeof(int)];
+       out = new uchar[Size ()];
        memcpy (out, &data, sizeof(int));
+       memcpy (out+sizeof (int), &block_data, sizeof(int));
        return out;
 }
 
@@ -43,7 +45,21 @@ bool ClaveFija::operator == (const Clave &c) const
                
 uchar *ClaveFija::ToRaw (uint &size) const
 {
-       size = Size ();
-       return ToArray ();
+       std::stringstream ss;
+
+       ss << "[";
+       ss << data;
+       ss << "]";
+       ss << "[";
+       ss << block_data;
+       ss << "]";
+
+       std::string s = ss.str ();
+
+       uchar *out = new uchar[s.size ()];
+       memcpy (out, s.c_str (), s.size ());
+
+       size = s.size ();
+       return out;
 }