Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVjaceslavs Bogdanovs <vjaceslavs.bogdanovs@zabbix.com>2017-06-08 16:54:26 +0300
committerVjaceslavs Bogdanovs <vjaceslavs.bogdanovs@zabbix.com>2017-06-08 16:54:26 +0300
commit9902bc1bd35d2e63858dca0256ccb2119100c9ad (patch)
tree08865153fd802df9ea1de34247c07826cb7085d7 /include/zbxserialize.h
parent8d0af41765368e6d4cfe1cdce6490753604bb841 (diff)
...GI..PS. [ZBXNEXT-3006] initial commit of dependent items and preprocessing processes
Diffstat (limited to 'include/zbxserialize.h')
-rw-r--r--include/zbxserialize.h21
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 */