1 #pragma once 2 3 #include <boost/asio/io_context.hpp> 4 #include <boost/container/flat_map.hpp> 5 #include <nlohmann/json.hpp> 6 #include <sdbusplus/asio/connection.hpp> 7 8 using DBusValueVariant = 9 std::variant<std::string, int64_t, uint64_t, double, int32_t, uint32_t, 10 int16_t, uint16_t, uint8_t, bool, std::vector<uint8_t>>; 11 using DBusInterface = boost::container::flat_map<std::string, DBusValueVariant>; 12 using DBusObject = boost::container::flat_map<std::string, DBusInterface>; 13 14 constexpr const char* configurationOutDir = "/var/configuration/"; 15 constexpr const char* versionHashFile = "/var/configuration/version"; 16 constexpr const char* versionFile = "/etc/os-release"; 17 18 namespace em_utils 19 { 20 21 namespace properties 22 { 23 constexpr const char* interface = "org.freedesktop.DBus.Properties"; 24 constexpr const char* get = "Get"; 25 } // namespace properties 26 27 bool fwVersionIsSame(); 28 29 std::optional<std::string> templateCharReplace( 30 nlohmann::json::iterator& keyPair, const DBusObject& object, size_t index, 31 const std::optional<std::string>& replaceStr = std::nullopt); 32 33 std::optional<std::string> templateCharReplace( 34 nlohmann::json::iterator& keyPair, const DBusInterface& interface, 35 size_t index, const std::optional<std::string>& replaceStr = std::nullopt); 36 37 } // namespace em_utils 38