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