#ifndef ZABBIX_ALERTER_H
#define ZABBIX_ALERTER_H
#include "zbxalgo.h"
#include "zbxdbhigh.h"
#include "zbxipcservice.h"
#include "zbxthreads.h"
#include "zbxdb.h"
#define MEDIA_TYPE_STATUS_ACTIVE 0
#define MEDIA_TYPE_STATUS_DISABLED 1
#define MEDIA_STATUS_ACTIVE 0
#define MEDIA_STATUS_DISABLED 1
#define ZBX_IPC_SERVICE_ALERTER "alerter"
#define ZBX_IPC_ALERTER_SYNC_ALERTS 1400
typedef struct
{
int source;
int object;
zbx_uint64_t objectid;
int alerts_num;
}
zbx_am_source_stats_t;
ZBX_PTR_VECTOR_DECL(am_source_stats_ptr, zbx_am_source_stats_t *)
typedef struct
{
char *recipient;
char *info;
int status;
}
zbx_alerter_dispatch_result_t;
ZBX_PTR_VECTOR_DECL(alerter_dispatch_result, zbx_alerter_dispatch_result_t *)
typedef struct
{
zbx_ipc_async_socket_t alerter;
int total_num;
zbx_vector_alerter_dispatch_result_t results;
}
zbx_alerter_dispatch_t;
typedef struct
{
const char *config_source_ip;
const char *config_ssl_ca_location;
const char *config_sms_devices;
}
zbx_thread_alerter_args;
typedef struct
{
zbx_get_config_forks_f get_process_forks_cb_arg;
zbx_get_config_str_f get_scripts_path_cb_arg;
const zbx_config_dbhigh_t *config_dbhigh;
const char *config_source_ip;
}
zbx_thread_alert_manager_args;
typedef struct
{
int confsyncer_frequency;
}
zbx_thread_alert_syncer_args;
ZBX_THREAD_ENTRY(zbx_alerter_thread, args);
ZBX_THREAD_ENTRY(zbx_alert_manager_thread, args);
ZBX_THREAD_ENTRY(zbx_alert_syncer_thread, args);