1 #include "msg_handler.h" 3 #include "logging/logging.h" 5 void MsgDispatcher::clearHandlers() { handler_map_.clear(); }
7 void MsgDispatcher::registerHandler(AKIpUptaneMes_PR msg_id, Handler handler) {
8 handler_map_[msg_id] = std::move(handler);
11 MsgHandler::ReturnCode MsgDispatcher::handleMsg(
const Asn1Message::Ptr& in_msg, Asn1Message::Ptr& out_msg) {
12 LOG_DEBUG <<
"Received a request from Primary: " << in_msg->toStr();
14 auto find_res_it = handler_map_.find(in_msg->present());
15 if (find_res_it == handler_map_.end()) {
16 return MsgHandler::kUnkownMsg;
18 LOG_DEBUG <<
"Found a handler for the request, processing it...";
19 auto handle_status_code = find_res_it->second(*in_msg, *out_msg);
20 LOG_DEBUG <<
"Request handler returned a response: " << out_msg->toStr();
22 return handle_status_code;