#pragma once #include "../utils.hpp" #include "entity_manager.hpp" #include #include #include #include #include #include #include namespace scan { struct DBusDeviceDescriptor { DBusInterface interface; std::string path; }; using FoundDevices = std::vector; struct PerformScan : std::enable_shared_from_this { PerformScan(EntityManager& em, nlohmann::json& missingConfigurations, std::vector& configurations, boost::asio::io_context& io, std::function&& callback); void updateSystemConfiguration(const nlohmann::json& recordRef, const std::string& probeName, FoundDevices& foundDevices); void run(); virtual ~PerformScan(); EntityManager& _em; nlohmann::json& _missingConfigurations; std::vector _configurations; std::function _callback; bool _passed = false; MapperGetSubTreeResponse dbusProbeObjects; std::vector passedProbes; boost::asio::io_context& io; }; } // namespace scan