// // Created by dongl on 23-4-23. // #include "mapping.h" #include "SimpleIni.h" #include "EnumMapping.h" #include std::map mapping::map; mapping::mapping() { if (map.empty()) { // CSimpleIniA ini; // ini.SetUnicode(); // ini.LoadFile("/home/dongl/code/网络编程/IMS/config/db.ini"); // auto key_value = ini.GetSection("server-mapping"); // 用户验证证明 auto userProve = new UserController(); map.insert( std::pair(mp::MP_REQUEST_LOGIN, userProve)); map.insert( std::pair(mp::MP_REQUEST_REGISTER, userProve)); map.insert( std::pair(mp::MP_REQUEST_LOGOUT, userProve)); // 获取邮件验证码 auto peVerifCode = new CodeController(); map.insert( std::pair(mp::MP_REQUEST_CODE, peVerifCode)); // 用户添加好友群组类操作 auto improve = new UserFriendsController(); map.insert({mp::MP_TYPE::MP_REQUEST_FRIENDS, improve}); map.insert({mp::MP_TYPE::MP_REQUEST_GROUPS, improve}); ///im controller auto imController = new IMController(); map.insert({mp::MP_TYPE::MP_IM_MSG, imController}); map.insert({mp::MP_TYPE::MP_IM_PUSH_MSG, imController}); } } void mapping::run(const mp::MP_TYPE mpTYpe, std::shared_ptr& request, std::shared_ptr& response) { mapping(); printf("[packet type]:%s\n", myenumToString(mpTYpe)); // 取出需要的执行对象 auto fun = map.find(mpTYpe)->second; // 开始执行 处理请求的数据 fun->run(request, response); // 发送 响应数据 handler::resp(request, response); }