X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/57dbb7df8973a3e0c0c570c1eae9d84802e02bd9..59b7476481f01388fcfd13492adbba7ef841755c:/src/clave_variable.cpp?ds=sidebyside diff --git a/src/clave_variable.cpp b/src/clave_variable.cpp index 48a42a6..c97b9d9 100644 --- a/src/clave_variable.cpp +++ b/src/clave_variable.cpp @@ -3,9 +3,10 @@ #include "clave_variable.h" #include -ClaveVariable::ClaveVariable (const std::string &s) +ClaveVariable::ClaveVariable (const std::string &s, uint bd) { data = s; + block_data = bd; } ClaveVariable::ClaveVariable (uchar *n) @@ -19,12 +20,15 @@ ClaveVariable::ClaveVariable (uchar *n) str[len] = '\0'; data = std::string ((const char *)(str)); delete [] str; + n += data.size () * sizeof (uchar); + memcpy (&block_data, n, sizeof (uint)); + raw_data = data; } uint ClaveVariable::Size () const { - return data.size ()*sizeof (uchar)+sizeof (uint); + return data.size ()*sizeof (uchar)+sizeof (uint)*2; } uchar *ClaveVariable::ToArray () const @@ -32,8 +36,13 @@ uchar *ClaveVariable::ToArray () const uchar *out; uint len = data.size (); out = new uchar[Size ()]; + int x = 0; memcpy (out, &len, sizeof (uint)); - memcpy (out+sizeof(uint), data.c_str (), data.size ()*sizeof (uchar)); + x += sizeof (uint); + memcpy (out+x, data.c_str (), data.size ()*sizeof (uchar)); + x += data.size () * sizeof (uchar); + memcpy (out+x, &block_data, sizeof (uint)); + return out; }