【openbmc6】entity-manager
文章目录
-
- 2.1 事件监听:dbus在linux上使用的底层通信方式多半是unix domain socket ,事件的到来可被抽象为:socket上有数据,可读
- 2.2 事件处理:由于主线程肯定有逻辑得跑,因此新开一个线程甚至多个线程专门用来监听和处理事件,但存在多线程就意味着可能存在竞争,存在竞争就要考虑加锁复杂
- 2.3 既监听又处理:boost::asio库
- 2.4 初始化:main函数
- 2.5 刷新:propertiesChangedCallback函数
entity-manager一个包构建两个可执行文件:entity-manager(xyz.openbmc_project.EntityManager.service)和fru-device(xyz.openbmc_project.FruDevice.service)
// fru_device.cpp:main函数调用如下
void rescanBusses(){auto scan = std::make_shared<FindDevicesWithCallback