文章目錄
-
- 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