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
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;
|
|
}
|