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 void handleLeftOverTemplateVars(nlohmann::json::iterator& keyPair); 30 31 std::optional<std::string> templateCharReplace( 32 nlohmann::json::iterator& keyPair, const DBusObject& object, size_t index, 33 const std::optional<std::string>& replaceStr = std::nullopt); 34 35 std::optional<std::string> templateCharReplace( 36 nlohmann::json::iterator& keyPair, const DBusInterface& interface, 37 size_t index, const std::optional<std::string>& replaceStr = std::nullopt); 38 39 std::string buildInventorySystemPath(std::string& boardName, 40 const std::string& boardType); 41 42 } // namespace em_utils 43