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:
authorDmitrijs Goloscapovs <dmitrijs.goloscapovs@zabbix.com>2021-03-02 10:42:10 +0300
committerDmitrijs Goloscapovs <dmitrijs.goloscapovs@zabbix.com>2021-03-08 18:16:40 +0300
commita6aff43f1ac37e00ab047639f533fba63ecb49e0 (patch)
tree5f5647e0301a5ffee3662d6bb02f5ef69e1442e2 /include/zbxalgo.h
parent9b38c1cc1e9f09275470f3bb64e20da8f1b43af8 (diff)
.......PS. [ZBXNEXT-6503] added protection of Zabbix Server from overloading by proxy data
Diffstat (limited to 'include/zbxalgo.h')
-rw-r--r--include/zbxalgo.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/include/zbxalgo.h b/include/zbxalgo.h
index 4e016a9171c..a3ac1de008c 100644
--- a/include/zbxalgo.h
+++ b/include/zbxalgo.h
@@ -413,6 +413,49 @@ void zbx_queue_ptr_push(zbx_queue_ptr_t *queue, void *value);
void *zbx_queue_ptr_pop(zbx_queue_ptr_t *queue);
void zbx_queue_ptr_remove_value(zbx_queue_ptr_t *queue, const void *value);
+/* list item data */
+typedef struct list_item
+{
+ struct list_item *next;
+ void *data;
+}
+zbx_list_item_t;
+
+/* list data */
+typedef struct
+{
+ zbx_list_item_t *head;
+ zbx_list_item_t *tail;
+ zbx_mem_malloc_func_t mem_malloc_func;
+ zbx_mem_realloc_func_t mem_realloc_func;
+ zbx_mem_free_func_t mem_free_func;
+}
+zbx_list_t;
+
+/* queue item data */
+typedef struct
+{
+ zbx_list_t *list;
+ zbx_list_item_t *current;
+ zbx_list_item_t *next;
+}
+zbx_list_iterator_t;
+
+void zbx_list_create(zbx_list_t *queue);
+void zbx_list_create_ext(zbx_list_t *queue, zbx_mem_malloc_func_t mem_malloc_func, zbx_mem_free_func_t mem_free_func);
+void zbx_list_destroy(zbx_list_t *list);
+void zbx_list_append(zbx_list_t *list, void *value, zbx_list_item_t **inserted);
+void zbx_list_insert_after(zbx_list_t *list, zbx_list_item_t *after, void *value, zbx_list_item_t **inserted);
+void zbx_list_prepend(zbx_list_t *list, void *value, zbx_list_item_t **inserted);
+int zbx_list_pop(zbx_list_t *list, void **value);
+int zbx_list_peek(const zbx_list_t *list, void **value);
+void zbx_list_iterator_init(zbx_list_t *list, zbx_list_iterator_t *iterator);
+int zbx_list_iterator_next(zbx_list_iterator_t *iterator);
+int zbx_list_iterator_peek(const zbx_list_iterator_t *iterator, void **value);
+void zbx_list_iterator_clear(zbx_list_iterator_t *iterator);
+int zbx_list_iterator_equal(const zbx_list_iterator_t *iterator1, const zbx_list_iterator_t *iterator2);
+int zbx_list_iterator_isset(const zbx_list_iterator_t *iterator);
+void zbx_list_iterator_update(zbx_list_iterator_t *iterator);
#endif