// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "MessageHandler.hpp" #include #include #include namespace sdesktop::endpoints { MessageHandler::MessageHandler(sys::Service *OwnerService, std::unique_ptr endpointFactory) : OwnerServicePtr(OwnerService), endpointFactory(std::move(endpointFactory)) {} void MessageHandler::parseMessage(const std::string &msg) { try { messageJson = json11::Json::parse(msg, JsonErrorMsg); } catch (const std::exception &e) { LOG_ERROR("Cannot create MessageHandler! err:%s", e.what()); } } void MessageHandler::processMessage() { auto context = ContextFactory::create(messageJson); LOG_DEBUG("[MsgHandler]\nmethod: %d\nendpoint: %d\nuuid: %d\n", static_cast(context->getMethod()), static_cast(context->getEndpoint()), context->getUuid()); auto handler = endpointFactory->create(*context, OwnerServicePtr); if (handler != nullptr) { handler->handle(*context); } else { LOG_ERROR("No way to handle!"); } } } // namespace sdesktop::endpoints