diff options
| author | lishu <[email protected]> | 2018-09-29 14:57:32 +0800 |
|---|---|---|
| committer | lishu <[email protected]> | 2018-09-29 14:57:32 +0800 |
| commit | 19cfcaf353ae4488927fc250361f8baa48f9ffb9 (patch) | |
| tree | 1cf82bd8c17044090777b067ed16c95b4269466b /src/main.h | |
20180929 first commit
Diffstat (limited to 'src/main.h')
| -rw-r--r-- | src/main.h | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/src/main.h b/src/main.h new file mode 100644 index 0000000..27f4659 --- /dev/null +++ b/src/main.h @@ -0,0 +1,289 @@ +#ifndef _MAIN_H +#define _MAIN_H + +#include <sys/un.h> +#include </usr/include/stdint.h> + +#define APP_FUNC 0 //�ֻ�APP +#define VOIP_FUNC 0 //VOIP ��Ҫ�������ļ���һ�� +#define PIC_FUNC 0 //PIC ��Ҫ�������ļ���һ�� + +#include "MESA_list_queue.h" +#include "MESA_htable.h" +#include "MESA_trace.h" +#include "MESA_timer.h" +#include "usm_api.h" +#include "Maat_rule.h" +#include "KafkaProducer.h" + +#include "common.h" +#include "log.h" +#include "AV_interface.h" +#include "wiredLB.h" + +/*������֧�ֵ�ҵ������*/ +#define CPZ_AV_PIC 0 +#define CPZ_VOIP 1 + +#define MAX_THREAD_NUM 32 + +/*sned data; send wins; send whitelist*/ +#define DEST_MAXNUM 8 +/*special media to windows*/ +#define SPECIAL_MEDIA_TYPE_MAXNUM 16 //in main.conf +#define SPECIAL_MEDIA_TABLE_MAXNUM 256 //special media type is 0Xxx, less than 256 + +/*��Ŀȷ�ϻ����С*/ +#define ACK_BUF_SIZE 1500 + +typedef struct frag_rssb_parameter_s +{ + void* asmis_log_handle; + /*data msg rec*/ + void* recv_bizman[MAX_THREAD_NUM]; + void* answer_sapp_bizman; //send msg to sapp + void* cpz_send_bizman; //send data to other cpz when multi + void* appdtc_handle; //send msg to sapp + + Maat_feather_t feather; + + USM_t* a_usm_handle; + unsigned int reader_cnt; + int usm_on_flag; + + MESA_lqueue_head* recv_bizman_lq; //bizman recv frag queue, queue num=thread_num + MESA_lqueue_head* monitor_file_lq; //monitor service dump file + MESA_lqueue_head* av_record_lq; //av record file + MESA_lqueue_head* av_digest_record_lq; //av fuzzy_record file + MESA_lqueue_head app_lq; //app queue + + MESA_htable_handle media_monitor_hash; //media_monitor_hash because full_file monitoe + MESA_htable_handle dumpfile_hash; //monitor dumpfile hash handle + MESA_htable_handle media_hash; //media_hash + + MESA_timer_t* index_query_timer[MAX_THREAD_NUM]; + + /*��Դ����ҵ��*/ + void* dedup_hd; //av_dedup_handle + void* dedup_logger; //av_dedup log + MESA_timer_t* multisrc_timer[MAX_THREAD_NUM]; + + KafkaProducer* kafka_producer; //kafka + + /*log*/ + FILE* media_create_file; //media create log + FILE* media_expire_file; //media expire log + FILE* resp_file; //survey log + + pthread_mutex_t media_create_file_lock; + pthread_mutex_t media_expire_file_lock; + pthread_mutex_t resp_file_lock; + + struct tm media_create_filetime; + struct tm media_expire_filetime; + struct tm resp_filetime; + time_t cur_time; + void* logger; + void* mid_trace_hd; //pid trace log handle + void* frag_logger; //about frag + void* voip_logger; //about dedup + + /*send data*/ + int send_fd[MAX_THREAD_NUM]; //unix socket : send frag + int send_sd[MAX_THREAD_NUM]; //udp socket : + + /*special media type*/ + char special_media_table[SPECIAL_MEDIA_TABLE_MAXNUM]; + + /*send data to windows system*/ + int send_windows_sd[MAX_THREAD_NUM]; //udp socket : special media send to windows system + /*resp msg*/ + int recv_msg_fd; //unix socket : response msg recv + int recv_msg_sd; //udp socket : response msg recv + int send_msg_sd; //udp socket : response msg send , send whitelist + + int frag_loglevel; //because cal IP, + + /*feedback to qd*/ + msg_data_ack_t* fb_ack_hdr[MAX_THREAD_NUM]; + char fb_ack_buf[MAX_THREAD_NUM][ACK_BUF_SIZE]; + + /*av record*/ + FILE* av_record_curfile[MAX_THREAD_NUM]; + uint64_t av_record_curcnt[MAX_THREAD_NUM]; + + /*av fuzzy record*/ + FILE* av_digest_record_curfile[MAX_THREAD_NUM]; + uint64_t av_digest_record_curcnt[MAX_THREAD_NUM]; + + short expr_tableid; +}frag_rssb_parameter_t; + +typedef struct frag_rssb_configure_s +{ + char store_filepath[MAX_PATH_LEN]; + char trace_filepath[MAX_PATH_LEN]; + char save_media_path[MAX_PATH_LEN]; + char media_create_filename[MAX_PATH_LEN]; //create media + char media_expire_filename[MAX_PATH_LEN]; //expire media + char resp_filename[MAX_PATH_LEN]; //about resp msg and monitor and block + + /*media hash*/ + uint32_t media_hash_size; + uint32_t media_hash_max_elem_num; + uint32_t media_hash_expire_time; + /*deduptd hash*/ + uint32_t deduptd_hash_size; + uint32_t deduptd_hash_max_elem_num; + uint32_t deduptd_hash_expire_time; + + /*dumpfile hash*/ + uint32_t dumpfile_hash_size; + uint32_t dumpfile_hash_max_elem_num; + uint32_t dumpfile_hash_expire_time; + /*monitor hash*/ + uint32_t monitor_hash_size; + uint32_t monitor_hash_max_elem_num; + uint32_t monitor_hash_expire_time; + + /*monitor service : save file*/ + char monitor_file_root_dir[MAX_PATH_LEN]; + uint16_t monitor_file_switch; + uint16_t monitor_file_days; + int16_t fuzzy_digest_switch; + int16_t modify_capIP_switch; + + uint16_t bizman_port; //recv_bizman port, recv frag from sapp + uint16_t bizman_ack_port; //answer_sapp_bizman port, send msg to sapp + uint16_t msg_port; + uint16_t store_filepath_switch; + + uint16_t renew_time_min; + uint16_t renew_time_max; + uint16_t renew_time_step; + /*send_msg_windows_sd , special media to windocs system*/ + uint16_t special_media_fwd_switch; // is deputy system data like MP4 send to remote windows system + uint32_t special_media_wins_ip_num; + uint32_t special_media_wins_port_num; + in_addr_t special_media_wins_ip[DEST_MAXNUM]; + in_port_t special_media_wins_port[DEST_MAXNUM]; + + /*send_msg_sd*/ + struct sockaddr_in whitelist_addr[DEST_MAXNUM]; + uint32_t whitelist_addr_num; + + /*send data by unix*/ + uint32_t send_dest_addr_num; //unix socket : send frag to dest + struct sockaddr_un send_dest_addr[DEST_MAXNUM]; //unix socket : send frag to dest + + /*send data by udp*/ + uint16_t send_dest_udp_port[DEST_MAXNUM]; //udp socket : send frag to dest + uint32_t send_dest_udp_ip_num; + in_addr_t send_dest_udp_iplist[DEST_MAXNUM]; //udp socket : send frag to dest + + /*avrecord*/ + char avrecord_filepath[MAX_PATH_LEN]; + uint32_t avrecord_maxnum; + uint32_t local_ip_nr; + + uint32_t thread_num; + uint16_t bizman_queue_mode; //0:���н��� 1:���л��� + uint16_t avrecord_switch; + uint16_t forecast_switch; + uint32_t bizman_queue_maxnum; //bizman ���е����ֵ + /*���ض�Դҵ��*/ + uint32_t td_data_maxsize; + int16_t av_dedup_switch; + uint32_t multisrc_wait_timeout; + uint32_t index_query_timeout; + int16_t multisrc_timer_cb_maxtime; + int16_t index_query_timer_cb_maxtime; + int16_t dedup_invalid; //0:�������� 1:�ظ����ϱ� 2: + /*debug*/ + int16_t all_hit_monitor_switch; + int16_t all_hit_monitor_complete_rate; + int16_t all_hit_filename; //����meidia_type�����ļ��� + int16_t hls_in_aboffset_mode; + int16_t json_local_switch; + int16_t frag_survey_invalid; + int16_t ack_switch; + /*APPҵ��*/ + int16_t app_switch; + + int16_t IVI_switch; + int16_t asmis_switch; + int16_t cpz_type; + + uint32_t* voip_survey_log_iplist; /*VOIP�ļ����־����IP*/ + uint16_t voip_survey_log_port; + uint16_t voip_survey_log_ipnum; + uint16_t voip_full_log_port; + uint16_t voip_full_log_ipnum; + uint32_t* voip_full_log_iplist; /*VOIP��ȫ����־����IP*/ + + int16_t voip_filter_switch; /*VOIP����media_type���й���*/ + + char kafka_brokers[512]; + int16_t media_json_switch; + uint32_t fwd_ip_nr; +//WLB + char wlb_topic[WLB_MAX_TAG_SIZE]; + char wlb_group_name[WLB_MAX_TAG_SIZE]; + char user_tag[WLB_MAX_TAG_SIZE]; + WLB_handle_t rssb_wlb_handle; + uint16_t wlb_on; + uint16_t health_check_interval; + uint16_t data_port; + uint32_t capacity; + uint32_t cost; + uint32_t wlb_report_interval; + uint32_t enable_override; + uint32_t health_check_port; + int16_t save_media; + + uint32_t hard_balance_port; +}frag_rssb_configure_t; + +typedef struct frag_rssb_status_s +{ + void* fs_handle; + void* sysfs_handle; + uint32_t stat_interval; + uint32_t sysinfo_interval; + + uint64_t stat_info[LOG_TYPE_MAXNUM][LOG_STAT_MAXNUM]; + uint64_t send_stat[DEST_MAXNUM][LOG_STAT_MAXNUM]; + uint64_t send_lq_stat[DEST_MAXNUM][LOG_STAT_MAXNUM];//add by dumeijie + uint64_t wins_send_stat[DEST_MAXNUM][LOG_STAT_MAXNUM]; + uint64_t whitelist_send_stat[DEST_MAXNUM][LOG_STAT_MAXNUM]; + uint64_t media_stat[MEDIALOG_TYPE_MAXNUM]; + uint64_t sysinfo_stat[SYSLOG_TYPE_MAXNUM][SYSLOG_STAT_MAXNUM]; + + /*stat*/ + int log_column_id[LOG_STAT_MAXNUM]; + int log_line_id[LOG_TYPE_MAXNUM]; + int sendlog_line_id[DEST_MAXNUM*2]; + int wins_sendlog_line_id[DEST_MAXNUM]; + int whitelist_sendlog_line_id[DEST_MAXNUM]; + int log_field_id[MEDIALOG_TYPE_MAXNUM]; //media_stat + /*sysinfo*/ + int syslog_column_id[SYSLOG_STAT_MAXNUM]; + int syslog_line_id[SYSLOG_TYPE_MAXNUM]; + + /*field_stat*/ + char fs_app[32]; + char fs_ip[32]; + uint16_t fs_port; + uint16_t fs_remote_switch; +}frag_rssb_status_t; + +#ifdef __cplusplus +extern "C" { +#endif + + +#ifdef __cplusplus +} +#endif + +#endif |
