#include "zbxcachehistory.h"
#include "zbxavailability.h"
#include "zbxconnector.h"
#include "zbx_item_constants.h"
#include "zbxtagfilter.h"
#include "zbxescalations.h"
#include "zbxcacheconfig.h"
static zbx_shmem_info_t *hc_index_mem = NULL;
static zbx_shmem_info_t *hc_mem = NULL;
static zbx_shmem_info_t *trend_mem = NULL;
#define LOCK_CACHE zbx_mutex_lock(cache_lock)
#define UNLOCK_CACHE zbx_mutex_unlock(cache_lock)
#define LOCK_TRENDS zbx_mutex_lock(trends_lock)
#define UNLOCK_TRENDS zbx_mutex_unlock(trends_lock)
#define LOCK_CACHE_IDS zbx_mutex_lock(cache_ids_lock)
#define UNLOCK_CACHE_IDS zbx_mutex_unlock(cache_ids_lock)
static zbx_mutex_t cache_lock = ZBX_MUTEX_NULL;
static zbx_mutex_t trends_lock = ZBX_MUTEX_NULL;
static zbx_mutex_t cache_ids_lock = ZBX_MUTEX_NULL;
static size_t sql_alloc = 4 * ZBX_KIBIBYTE;
static zbx_get_program_type_f get_program_type_cb = NULL;
static zbx_history_sync_f sync_history_cb = NULL;
#define ZBX_HC_ITEMS_INIT_SIZE 1000
#define ZBX_TRENDS_CLEANUP_TIME (SEC_PER_MIN * 55)
#define ZBX_HISTORY_VALUE_LEN (1024 * 64)
char table_name[ZBX_TABLENAME_LEN_MAX];
ZBX_DC_ID id[ZBX_IDS_SIZE];
static ZBX_DC_IDS *ids = NULL;