Files
MuditaOS/module-apps/apps-common/DOMResponder.cpp
Artur Śleszyński b15006a94c [CP-564] Make desktop endpoints a separate lib
In order to have different sets of endpoints for different products,
we need to separate endpoints from the desktop service.
2021-09-21 10:41:37 +02:00

35 lines
1.2 KiB
C++

// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "DOMResponder.hpp"
#include "service-desktop/DeveloperModeMessage.hpp"
#include <service-appmgr/messages/DOMRequest.hpp>
#include <module-gui/gui/dom/Item2JsonSerializer.hpp>
#include <memory>
#include <Item.hpp>
#include <time/ScopedTime.hpp>
#include <endpoints/developerMode/event/DomRequest.hpp>
namespace app
{
DOMResponder::DOMResponder(const std::string &name, gui::Item &item, std::unique_ptr<sdesktop::Event> event)
: name(name), item(item), event(std::move(event))
{}
[[nodiscard]] auto DOMResponder::build() -> std::shared_ptr<sys::Message>
{
createDOM();
return std::make_shared<sdesktop::developerMode::DeveloperModeRequest>(std::move(event));
}
void DOMResponder::createDOM()
{
auto t = utils::time::Scoped("Time to build dom");
auto serializer = gui::Item2JsonSerializer();
serializer.traverse(item);
auto evt = std::make_unique<sdesktop::developerMode::DomRequestEvent>(*event);
evt->setJson(serializer.get());
event = std::move(evt);
}
} // namespace app