#ifndef ZABBIX_ZBXPGSERVICE_H
#define ZABBIX_ZBXPGSERVICE_H
#include "zbxipcservice.h"
#define ZBX_IPC_SERVICE_PGSERVICE "pgservice"
#define ZBX_PG_SERVICE_TIMEOUT SEC_PER_MIN
#define ZBX_IPC_PGM_HOST_PGROUP_UPDATE 1
#define ZBX_IPC_PGM_GET_PROXY_SYNC_DATA 2
#define ZBX_IPC_PGM_PROXY_SYNC_DATA 3
#define ZBX_IPC_PGM_GET_STATS 4
#define ZBX_IPC_PGM_STATS 5
#define ZBX_IPC_PGM_PROXY_RTDATA 6
#define ZBX_IPC_PGM_GET_ALL_PGROUP_RTDATA 7
#define ZBX_IPC_PGM_ALL_PGROUP_RTDATA 8
#define ZBX_IPC_PGM_STOP 100
#define ZBX_PROXY_SYNC_NONE 0
#define ZBX_PROXY_SYNC_FULL 1
#define ZBX_PROXY_SYNC_PARTIAL 2
#define ZBX_PG_DEFAULT_FAILOVER_DELAY SEC_PER_MIN
#define ZBX_PG_DEFAULT_FAILOVER_DELAY_STR "1m"
ZBX_VECTOR_DECL(objmove, zbx_objmove_t)
zbx_vector_uint64_t proxyids;
zbx_uint64_t proxy_groupid;
void zbx_pg_update_object_relocations(zbx_uint32_t code, zbx_vector_objmove_t *updates);
int zbx_pg_get_stats(const char *pg_name, zbx_pg_stats_t *pg_stats, char **error);
int zbx_pg_get_all_rtdata(zbx_hashset_t *pgroups_rtdata, char **error);
void zbx_pg_update_proxy_rtdata(zbx_uint64_t proxyid, int lastaccess, int version);