summaryrefslogtreecommitdiff
path: root/src/main.h
diff options
context:
space:
mode:
authorlishu <[email protected]>2018-09-29 14:57:32 +0800
committerlishu <[email protected]>2018-09-29 14:57:32 +0800
commit19cfcaf353ae4488927fc250361f8baa48f9ffb9 (patch)
tree1cf82bd8c17044090777b067ed16c95b4269466b /src/main.h
20180929 first commit
Diffstat (limited to 'src/main.h')
-rw-r--r--src/main.h289
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