Files
MuditaOS/module-apps/DOMResponder.cpp
Adam Dobrowolski f724d9074b [EGD-5701] Added DOM dump to harness
* Added generic handler to developerMode
* Added DOM message handling
2021-02-18 16:53:07 +01: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/service-appmgr/messages/DOMRequest.hpp>
#include <module-gui/gui/dom/Item2JsonSerializer.hpp>
#include <memory>
#include <Item.hpp>
#include <module-utils/time/ScopedTime.hpp>
#include <service-desktop/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