#pragma once enum category_type { CATEGORY_TYPE_UNKNOWN = 0, CATEGORY_TYPE_GEOIP, CATEGORY_TYPE_CONTRY_CODE, CATEGORY_TYPE_ASN, CATEGORY_TYPE_WEBSITE_CATEGORY, CATEGORY_TYPE_INTERNET_SERVICE, CATEGORY_TYPE_SECURITY_THREAT, CATEGORY_TYPE_RISK, CATEGORY_TYPE_MAX }; struct app_id_dict { int ref_cnt; int app_id; int object_id; pthread_mutex_t lock; }; struct library_tag_ctx { int ref_cnt; char *uuid; char *tag_key; char *tag_value; enum category_type category; pthread_mutex_t lock; }; void app_id_dict_free(struct app_id_dict *app_dict); void library_tag_free(struct library_tag_ctx *library_tags); enum scan_common_table { PXY_CTRL_SOURCE_IP, PXY_CTRL_DESTINATION_IP, PXY_CTRL_INTERNAL_IP, PXY_CTRL_EXTERNAL_IP, PXY_CTRL_SOURCE_PORT, PXY_CTRL_DESTINATION_PORT, PXY_CTRL_INTERNAL_PORT, PXY_CTRL_EXTERNAL_PORT, PXY_CTRL_IP_PROTOCOL, PXY_CTRL_SUBSCRIBER_ID, PXY_CTRL_APP_ID_DICT, PXY_CTRL_LIBRARY_TAG, PXY_CTRL_IMSI, PXY_CTRL_APN, PXY_CTRL_PHONE_NUMBER, PXY_CTRL_GTP_IMEI, __SCAN_COMMON_TABLE_MAX }; int tfe_env_init(); int tfe_bussiness_tableid_get(enum scan_common_table type); int tfe_get_vsys_id(); const char *tfe_get_device_id(); const char *tfe_get_data_center(); const char *tfe_get_device_group(); const char *tfe_get_device_tag(); const char *tfe_get_sled_ip(); struct kafka *tfe_get_kafka_handle(); struct maat *tfe_get_maat_handle(); struct tfe_fieldstat_easy_t *tfe_get_fieldstat_handle();