You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
772 B

#include "front_msg_processer.hpp"
#include "iflytop/core/error/error_code.hpp"
using namespace iflytop;
void FrontMsgProcesser::initialize() {}
void FrontMsgProcesser::processMsg(json& cmd, json& receipt) {
string cmdstr = cmd["command"];
if (m_msgProcesserMap.find(cmdstr) != m_msgProcesserMap.end()) {
m_msgProcesserMap[cmdstr](cmd, receipt);
} else {
logger->error("unknown command: {}", cmdstr);
receipt["ackcode"] = err::kfail;
receipt["reason"] = "unknown command";
}
}
void FrontMsgProcesser::registerMsgProcesser(const string& cmdName, MsgProcesserFn_t fn) {
if (m_msgProcesserMap.find(cmdName) != m_msgProcesserMap.end()) {
logger->warn("cmd {} already registered", cmdName);
return;
}
m_msgProcesserMap[cmdName] = fn;
}