entity-manager: not pass through io, objServer
Pass
`boost::asio::io_context& io`
and
`sdbusplus::asio::object_server& objServer`
into constructor for class EMDBusInterface.
Since these are just references, nothing exciting should happen here.
The change reduces the number of parameters and makes the code more
easily readable.
Tested: on Tyan S8030
clean log
```
Sep 22 16:00:47 s8030-bmc-30303035c0c1 systemd[1]: Started Entity Manager.
Sep 22 16:00:57 s8030-bmc-30303035c0c1 entity-manager[10392]: Inventory Added: Supermicro PWS 920P SQ 0
Sep 22 16:00:57 s8030-bmc-30303035c0c1 entity-manager[10392]: Inventory Added: Supermicro PWS 920P SQ 1
Sep 22 16:00:57 s8030-bmc-30303035c0c1 entity-manager[10392]: Inventory Added: Tyan S8030 Baseboard
Sep 22 16:00:57 s8030-bmc-30303035c0c1 entity-manager[10392]: Inventory Added: MBX 1.57 Chassis
```
and clean `busctl tree`
```
busctl tree xyz.openbmc_project.EntityManager
`- /xyz
`- /xyz/openbmc_project
|- /xyz/openbmc_project/EntityManager
`- /xyz/openbmc_project/inventory
`- /xyz/openbmc_project/inventory/system
|- /xyz/openbmc_project/inventory/system/board
| `- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/CPU0_Power_Consumption
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/CPU0_Temp
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/GARBO_SENSOR
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/HostSPIFlash
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/P0_VDD_18_RUN
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/P0_VDD_CORE_RUN
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/P0_VDD_MEM_ABCD
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/P0_VDD_MEM_EFGH
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/P0_VDD_SOC_RUN
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/VBAT_33
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/VDD_12_RUN
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/VDD_33_DUAL
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/VDD_33_RUN
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/VDD_5_DUAL
| |- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/VDD_5_RUN
| `- /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/X550
|- /xyz/openbmc_project/inventory/system/chassis
| `- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/Fan_Control
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/GenericContainPort
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/NIC_1_Ignore
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/NIC_2_Ignore
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/NIC_FRU_1
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/NIC_FRU_2
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/SYS_FAN_1
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/SYS_FAN_2
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/SYS_FAN_3
| |- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/Temperature_Control
| `- /xyz/openbmc_project/inventory/system/chassis/MBX_1_57_Chassis/Zone0
`- /xyz/openbmc_project/inventory/system/powersupply
|- /xyz/openbmc_project/inventory/system/powersupply/Supermicro_PWS_920P_SQ_0
| |- /xyz/openbmc_project/inventory/system/powersupply/Supermicro_PWS_920P_SQ_0/PSU0
| |- /xyz/openbmc_project/inventory/system/powersupply/Supermicro_PWS_920P_SQ_0/PSU0_ADDR
| `- /xyz/openbmc_project/inventory/system/powersupply/Supermicro_PWS_920P_SQ_0/PSU0_FRU
`- /xyz/openbmc_project/inventory/system/powersupply/Supermicro_PWS_920P_SQ_1
|- /xyz/openbmc_project/inventory/system/powersupply/Supermicro_PWS_920P_SQ_1/PSU1
|- /xyz/openbmc_project/inventory/system/powersupply/Supermicro_PWS_920P_SQ_1/PSU1_ADDR
`- /xyz/openbmc_project/inventory/system/powersupply/Supermicro_PWS_920P_SQ_1/PSU1_FRU
```
Change-Id: Id292bf86a72c9b6e707b2cec71b77c63ed5077a2
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/src/entity_manager/dbus_interface.hpp b/src/entity_manager/dbus_interface.hpp
index 84efec8..30423e6 100644
--- a/src/entity_manager/dbus_interface.hpp
+++ b/src/entity_manager/dbus_interface.hpp
@@ -16,20 +16,37 @@
class EMDBusInterface
{
public:
+ EMDBusInterface(boost::asio::io_context& io,
+ sdbusplus::asio::object_server& objServer);
+
std::shared_ptr<sdbusplus::asio::dbus_interface> createInterface(
- sdbusplus::asio::object_server& objServer, const std::string& path,
- const std::string& interface, const std::string& parent,
- bool checkNull = false);
+ const std::string& path, const std::string& interface,
+ const std::string& parent, bool checkNull = false);
std::vector<std::weak_ptr<sdbusplus::asio::dbus_interface>>&
getDeviceInterfaces(const nlohmann::json& device);
- void createAddObjectMethod(
- boost::asio::io_context& io, const std::string& jsonPointerPath,
- const std::string& path, nlohmann::json& systemConfiguration,
- sdbusplus::asio::object_server& objServer, const std::string& board);
+ void createAddObjectMethod(const std::string& jsonPointerPath,
+ const std::string& path,
+ nlohmann::json& systemConfiguration,
+ const std::string& board);
+
+ void populateInterfaceFromJson(
+ nlohmann::json& systemConfiguration, const std::string& jsonPointerPath,
+ std::shared_ptr<sdbusplus::asio::dbus_interface>& iface,
+ nlohmann::json& dict,
+ sdbusplus::asio::PropertyPermission permission =
+ sdbusplus::asio::PropertyPermission::readOnly);
+
+ void createDeleteObjectMethod(
+ const std::string& jsonPointerPath,
+ const std::shared_ptr<sdbusplus::asio::dbus_interface>& iface,
+ nlohmann::json& systemConfiguration);
private:
+ boost::asio::io_context& io;
+ sdbusplus::asio::object_server& objServer;
+
boost::container::flat_map<
std::string,
std::vector<std::weak_ptr<sdbusplus::asio::dbus_interface>>>
@@ -138,18 +155,4 @@
}
}
-void createDeleteObjectMethod(
- const std::string& jsonPointerPath,
- const std::shared_ptr<sdbusplus::asio::dbus_interface>& iface,
- sdbusplus::asio::object_server& objServer,
- nlohmann::json& systemConfiguration, boost::asio::io_context& io);
-
-void populateInterfaceFromJson(
- boost::asio::io_context& io, nlohmann::json& systemConfiguration,
- const std::string& jsonPointerPath,
- std::shared_ptr<sdbusplus::asio::dbus_interface>& iface,
- nlohmann::json& dict, sdbusplus::asio::object_server& objServer,
- sdbusplus::asio::PropertyPermission permission =
- sdbusplus::asio::PropertyPermission::readOnly);
-
} // namespace dbus_interface