#pragma once enum RESOURCE_TYPE { STATIC_MAAT, DYNAMINC_MAAT, KAFKA_LOGGER, DEVICE_ID, }; enum TABLE_TYPE { TABLE_IP_ASN_USER_DEFINED, TABLE_IP_ASN_BUILT_IN, TABLE_IP_LOCATION_USER_DEFINED, TABLE_IP_LOCATION_BUILT_IN, TABLE_SECURITY_SOURCE_ASN, TABLE_SECURITY_DESTINATION_ASN, TABLE_SECURITY_SOURCE_LOCATION, TABLE_SECURITY_DESTINATION_LOCATION, TABLE_TYPE_MAX }; struct ip_data_table { int profile_id; int ref_cnt; char *asn; char *organization; char *country_full; char *province_full; char *city_full; pthread_mutex_t lock; }; int tfe_bussiness_resouce_init(); void *tfe_bussiness_resouce_get(enum RESOURCE_TYPE type); int tfe_bussiness_tableid_get(enum TABLE_TYPE type); void ip_table_free(struct ip_data_table *ip_asn);