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:
authorAndris Zeila <andris.zeila@zabbix.com>2021-01-23 17:49:55 +0300
committerAndris Zeila <andris.zeila@zabbix.com>2021-01-23 17:49:55 +0300
commit5afa58b768619e2a636aa3b5ca6473a1621aeb2f (patch)
tree436dfe3e4c165e0a6eb017a316a50086e14d3b3d /include
parentb4b45a38efb5caf817104ae263cef64cea3e8967 (diff)
........S. [ZBXNEXT-6451] added caching of serialized trigger expressions
Diffstat (limited to 'include')
-rw-r--r--include/common.h2
-rw-r--r--include/dbcache.h2
-rw-r--r--include/zbxserialize.h6
-rw-r--r--include/zbxserver.h13
4 files changed, 20 insertions, 3 deletions
diff --git a/include/common.h b/include/common.h
index 9ce6001edab..a501e46711d 100644
--- a/include/common.h
+++ b/include/common.h
@@ -1684,4 +1684,6 @@ int zbx_open_xml(char *data, int options, int maxerrlen, void **xml_doc, void **
int zbx_check_xml_memory(char *mem, int maxerrlen, char **errmsg);
#endif
+char *zbx_strloc_unquote_dyn(const char *src, const zbx_strloc_t *loc);
+
#endif
diff --git a/include/dbcache.h b/include/dbcache.h
index 70daf1cd463..7759d3d645f 100644
--- a/include/dbcache.h
+++ b/include/dbcache.h
@@ -240,6 +240,8 @@ typedef struct _DC_TRIGGER
char *correlation_tag;
char *opdata;
char *event_name;
+ unsigned char *expression_bin;
+ unsigned char *recovery_expression_bin;
zbx_timespec_t timespec;
int lastchange;
unsigned char topoindex;
diff --git a/include/zbxserialize.h b/include/zbxserialize.h
index 8afc9787be5..47645e4337e 100644
--- a/include/zbxserialize.h
+++ b/include/zbxserialize.h
@@ -117,4 +117,10 @@
)
#endif
+
+/* complex serialization/deserialization functions */
+
+zbx_uint32_t zbx_serialize_uint31_compact(unsigned char *ptr, zbx_uint32_t value);
+zbx_uint32_t zbx_deserialize_uint31_compact(const unsigned char *ptr, zbx_uint32_t *value);
+
/* ZABBIX_SERIALIZE_H */
diff --git a/include/zbxserver.h b/include/zbxserver.h
index ea80d304ecf..7864987b092 100644
--- a/include/zbxserver.h
+++ b/include/zbxserver.h
@@ -158,6 +158,7 @@ int xml_xpath_check(const char *xpath, char *error, size_t errlen);
#define ZBX_EVAL_TOKEN_ARG_TIME (28 | ZBX_EVAL_CLASS_OPERAND)
#define ZBX_EVAL_TOKEN_ARG_NULL (29 | ZBX_EVAL_CLASS_OPERAND)
#define ZBX_EVAL_TOKEN_ARG_RAW (30 | ZBX_EVAL_CLASS_OPERAND)
+#define ZBX_EVAL_TOKEN_EXCEPTION (31 | ZBX_EVAL_CLASS_FUNCTION)
/* expression parsing rules */
@@ -241,14 +242,20 @@ typedef struct
}
zbx_eval_context_t;
+typedef char *(*zbx_macro_resolve_func_t)(const char *str, size_t length, zbx_uint64_t *hostids,
+ int hostids_num);
+
int zbx_eval_parse_expression(zbx_eval_context_t *ctx, const char *expression, zbx_uint64_t rules, char **error);
-void zbx_eval_clean(zbx_eval_context_t *ctx);
-void zbx_eval_serialize(const zbx_eval_context_t *ctx, zbx_mem_malloc_func_t malloc_func, unsigned char **data);
+void zbx_eval_clear(zbx_eval_context_t *ctx);
+size_t zbx_eval_serialize(const zbx_eval_context_t *ctx, zbx_mem_malloc_func_t malloc_func, unsigned char **data);
void zbx_eval_deserialize(zbx_eval_context_t *ctx, const char *expression, zbx_uint64_t rules,
const unsigned char *data);
void zbx_eval_compose_expression(const zbx_eval_context_t *ctx, char **expression);
int zbx_eval_execute(zbx_eval_context_t *ctx, const zbx_timespec_t *ts, zbx_variant_t *value, char **error);
int zbx_eval_execute_ext(zbx_eval_context_t *ctx, const zbx_timespec_t *ts, zbx_eval_function_cb_t function_cb,
zbx_variant_t *value, char **error);
-
+void zbx_eval_get_functionids(const zbx_eval_context_t *ctx, zbx_vector_uint64_t *functionids);
+void zbx_eval_expand_user_macros(const zbx_eval_context_t *ctx, zbx_uint64_t *hostids, int hostids_num,
+ zbx_macro_resolve_func_t resolver_cb);
+void zbx_eval_set_exception(zbx_eval_context_t *ctx, char *message);
#endif