#ifndef ZABBIX_VMWARE_SHMEM_H
#define ZABBIX_VMWARE_SHMEM_H
#if defined(HAVE_LIBXML2) && defined(HAVE_LIBCURL)
# include "vmware_internal.h"
zbx_shmem_info_t *vmware_shmem_get_vmware_mem(void);
void vmware_shmem_set_vmware_mem_NULL(void);
#if defined(HAVE_LIBXML2) && defined(HAVE_LIBCURL)
#define VMWARE_SHMEM_VECTOR_CREATE_DECL(ref,type) void vmware_shmem_vector_##type##_create_ext(ref);
VMWARE_SHMEM_VECTOR_CREATE_DECL(zbx_vector_str_t*, str)
VMWARE_SHMEM_VECTOR_CREATE_DECL(zbx_vector_vmware_entity_tags_ptr_t*, vmware_entity_tags_ptr)
VMWARE_SHMEM_VECTOR_CREATE_DECL(zbx_vector_custquery_param_t*, custquery_param)
VMWARE_SHMEM_VECTOR_CREATE_DECL(zbx_vector_vmware_tag_ptr_t*, vmware_tag_ptr)
VMWARE_SHMEM_VECTOR_CREATE_DECL(zbx_vector_vmware_perf_counter_ptr_t*, vmware_perf_counter_ptr)
void vmware_shmem_perf_counter_free(zbx_vmware_perf_counter_t *counter);
void vmware_perf_counters_add_new(zbx_vector_vmware_perf_counter_ptr_t *counters, zbx_uint64_t counterid,
void vmware_perf_counters_vector_ptr_create_ext(zbx_vmware_perf_entity_t *pentity);
void vmware_shmem_diskextent_free(zbx_vmware_diskextent_t *diskextent);
void vmware_shmem_free_datastore(zbx_vmware_datastore_t *datastore);
void vmware_shmem_datacenter_free(zbx_vmware_datacenter_t *datacenter);
void vmware_shmem_resourcepool_free(zbx_vmware_resourcepool_t *resourcepool);
void vmware_shmem_dvswitch_free(zbx_vmware_dvswitch_t *dvswitch);
void vmware_shmem_props_free(char **props, int props_num);
void vmware_shmem_dev_free(zbx_vmware_dev_t *dev);
void vmware_shmem_fs_free(zbx_vmware_fs_t *fs);
void vmware_shmem_custom_attr_free(zbx_vmware_custom_attr_t *custom_attr);
void vmware_shmem_vm_free(zbx_vmware_vm_t *vm);
void vmware_shmem_dsname_free(zbx_vmware_dsname_t *dsname);
void vmware_shmem_pnic_free(zbx_vmware_pnic_t *nic);
void vmware_shmem_alarm_free(zbx_vmware_alarm_t *alarm);
void vmware_shmem_diskinfo_free(zbx_vmware_diskinfo_t *di);
void vmware_shmem_cluster_free(zbx_vmware_cluster_t *cluster);
void vmware_shmem_event_free(zbx_vmware_event_t *event);
void vmware_shmem_data_free(zbx_vmware_data_t *data);
void vmware_shmem_eventlog_data_free(zbx_vmware_eventlog_data_t *data_eventlog);
void vmware_shmem_cust_query_clean(zbx_vmware_cust_query_t *cust_query);
void vmware_shared_tag_free(zbx_vmware_tag_t *value);
void vmware_shared_entity_tags_free(zbx_vmware_entity_tags_t *value);
void vmware_shmem_service_free(zbx_vmware_service_t *service);