diff options
author | Vjaceslavs Bogdanovs <vjaceslavs.bogdanovs@zabbix.com> | 2017-06-08 16:54:26 +0300 |
---|---|---|
committer | Vjaceslavs Bogdanovs <vjaceslavs.bogdanovs@zabbix.com> | 2017-06-08 16:54:26 +0300 |
commit | 9902bc1bd35d2e63858dca0256ccb2119100c9ad (patch) | |
tree | 08865153fd802df9ea1de34247c07826cb7085d7 /include/zbxserialize.h | |
parent | 8d0af41765368e6d4cfe1cdce6490753604bb841 (diff) |
...GI..PS. [ZBXNEXT-3006] initial commit of dependent items and preprocessing processes
Diffstat (limited to 'include/zbxserialize.h')
-rw-r--r-- | include/zbxserialize.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/include/zbxserialize.h b/include/zbxserialize.h index b1a80cd4ca2..7ca3ef69bc6 100644 --- a/include/zbxserialize.h +++ b/include/zbxserialize.h @@ -28,14 +28,16 @@ #define zbx_serialize_short(buffer, value) (memcpy(buffer, (short *)&value, sizeof(short)), sizeof(short)) +#define zbx_serialize_double(buffer, value) (memcpy(buffer, (double *)&value, sizeof(double)), sizeof(double)) + #define zbx_serialize_char(buffer, value) (*buffer = (char)value, sizeof(char)) -#define zbx_serialize_str(buffer, value, len) \ +#define zbx_serialize_str(buffer, value, len) \ (memcpy(buffer, (zbx_uint32_t *)&len, sizeof(zbx_uint32_t)), \ memcpy(buffer + sizeof(zbx_uint32_t), value, len), \ len + sizeof(zbx_uint32_t)) -#define zbx_serialize_str_null(buffer) \ +#define zbx_serialize_str_null(buffer) \ ( \ memset(buffer, 0, sizeof(zbx_uint32_t)), \ sizeof(zbx_uint32_t) \ @@ -53,18 +55,21 @@ #define zbx_deserialize_char(buffer, value) \ (*value = *buffer, sizeof(char)) -#define zbx_deserialize_str(buffer, value, value_len) \ +#define zbx_deserialize_double(buffer, value) \ + (memcpy(value, buffer, sizeof(double)), sizeof(double)) + +#define zbx_deserialize_str(buffer, value, value_len) \ ( \ memcpy(&value_len, buffer, sizeof(zbx_uint32_t)), \ 0 < value_len ? ( \ - *value = zbx_malloc(NULL, value_len + 1), \ + *value = zbx_malloc(NULL, value_len + 1), \ memcpy(*(value), buffer + sizeof(zbx_uint32_t), value_len), \ (*value)[value_len] = '\0' \ ) : (*value = NULL, 0), \ value_len + sizeof(zbx_uint32_t) \ ) -#define zbx_deserialize_str_s(buffer, value, value_len) \ +#define zbx_deserialize_str_s(buffer, value, value_len) \ ( \ memcpy(&value_len, buffer, sizeof(zbx_uint32_t)), \ memcpy(value, buffer + sizeof(zbx_uint32_t), value_len), \ @@ -72,5 +77,11 @@ value_len + sizeof(zbx_uint32_t) \ ) +#define zbx_deserialize_str_ptr(buffer, value, value_len) \ + ( \ + memcpy(&value_len, buffer, sizeof(zbx_uint32_t)), \ + 0 < value_len ? (value = (char *)(buffer + sizeof(zbx_uint32_t))) : \ + (value = NULL), value_len + sizeof(zbx_uint32_t) \ + ) #endif /* ZABBIX_SERIALIZE_H */ |