39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
//
|
|
// Created by dongl on 23-4-23.
|
|
//
|
|
#include "mapping.h"
|
|
#include "SimpleIni.h"
|
|
#include "EnumMapping.h"
|
|
#include <fstream>
|
|
|
|
std::map<mp::MP_TYPE, handler*> 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 userController = new UserController();
|
|
map.insert( std::pair<mp::MP_TYPE, handler*>(mp::MP_REQUEST_LOGIN, userController));
|
|
map.insert( std::pair<mp::MP_TYPE, handler*>(mp::MP_REQUEST_REGISTER, userController));
|
|
map.insert( std::pair<mp::MP_TYPE, handler*>(mp::MP_REQUEST_LOGOUT, userController));
|
|
}
|
|
}
|
|
|
|
void mapping::run(const mp::MP_TYPE mpTYpe, std::shared_ptr<agreement_request>& request, std::shared_ptr<agreement_response>& response) {
|
|
mapping();
|
|
printf("%s\n", myenumToString(mpTYpe));
|
|
// 取出需要的执行对象
|
|
auto fun = map.find(mpTYpe)->second;
|
|
// 开始执行 请求
|
|
fun->run(request, response);
|
|
// 发送 响应
|
|
handler::resp(request, response);
|
|
}
|
|
|
|
|
|
|
|
|