#ifndef MODULE_WEB_H #define MODULE_WEB_H #include #include #include #include "rapidjson/prettywriter.h" #include "rapidjson/document.h" #include "config_file.h" #include "module_singleton_base.h" #include "module_i_thread.h" #include "websocket/wsClientMgr.h" struct ya_event; class module_web : public i_thread, public singleton_base { private: friend class singleton_base; module_web() { } public: /** * @brief 用来处理WEB发送的请求(web请求回调函数) * @param ID * @param name * @param data * @param need_ack * @param ack_resp */ static void accept( int ID, std::string const& name, sio::message::ptr const& data, bool need_ack, sio::message::list &ack_resp ); /** * @brief 注册web请求回调函数 * @param MsgFuncList */ void init(config_file& config, std::map& MsgFuncList) { sleep_ms = std::stoi(config.get("service.interval_send_json_alarm_ms","10000")); MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_META_DATA_CHANGED, &module_web::accept ) ); MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_REQUEST_ALL_DATA, &module_web::accept ) ); MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_DEAL_HELP, &module_web::accept ) ); MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_CALL_CARD_REQUEST, &module_web::accept ) ); MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_CALL_CARD_CANCEL_REQUEST, &module_web::accept ) ); MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_CLEAR_CARD, &module_web::accept ) );//手动升井 MsgFuncList.insert( std::make_pair( JSON_CMD_REQ_ALL_PERSON_ON_CAR,&module_web::accept)); // 接收web端请求的在车上的人卡信息 MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_LIGHTS_CTRL_REQUEST, &module_web::accept)); // 红绿灯控制指令 MsgFuncList.insert(std::make_pair(JSON_CMD_VALUE_LOAD_HISTORY_REQUEST, &module_web::accept)); // 导入历史文件指令 MsgFuncList.insert(std::make_pair(JSON_KEY_NAME_SETTING, &module_web::accept)); // 导入历史文件指令 } /// web前端有用户登录时,反馈给web所有信息 void response_login(); private: /** * @brief 线程函数 */ void run(); ///获取所有的告警事件 void _get_all_events(std::vector>& arr,bool f=false); ///在全局列表中删除已经处理或结束了的告警 void _delete_end(std::vector>& arr); }; #endif // MODULE_WEB_H