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.

21 lines
721 B

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