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.

22 lines
772 B

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. #include "front_msg_processer.hpp"
  2. #include "iflytop/core/error/error_code.hpp"
  3. using namespace iflytop;
  4. void FrontMsgProcesser::initialize() {}
  5. void FrontMsgProcesser::processMsg(json& cmd, json& receipt) {
  6. string cmdstr = cmd["command"];
  7. if (m_msgProcesserMap.find(cmdstr) != m_msgProcesserMap.end()) {
  8. m_msgProcesserMap[cmdstr](cmd, receipt);
  9. } else {
  10. logger->error("unknown command: {}", cmdstr);
  11. receipt["ackcode"] = err::kfail;
  12. receipt["reason"] = "unknown command";
  13. }
  14. }
  15. void FrontMsgProcesser::registerMsgProcesser(const string& cmdName, MsgProcesserFn_t fn) {
  16. if (m_msgProcesserMap.find(cmdName) != m_msgProcesserMap.end()) {
  17. logger->warn("cmd {} already registered", cmdName);
  18. return;
  19. }
  20. m_msgProcesserMap[cmdName] = fn;
  21. }