# lb_interface_manager **Repository Path**: litebmc/lb_interface_manager ## Basic Information - **Project Name**: lb_interface_manager - **Description**: 实现com.litebmc.InterfaceManager接口,提供接口类服务,包括接口订阅、接口申明和获取对象接口管理器等服务。 - **Primary Language**: Unknown - **License**: LGPL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-06-18 - **Last Updated**: 2025-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## com.litebmc.lb_interface_manager_mock 开发者测试辅助程序,可以指定服务名、退出时间(ms)、对象数量、需要创建的接口列表,如:`./lb_interface_manager_mock com.litebmc.lb_interface_manager_mock 1000 100 com.litebmc.InterfaceManagerMock com.litebmc.InterfaceManagerTest`,该命令会创建一个名为`com.litebmc.lb_interface_manager_mock`的服务,创建完成1000ms后退出,创建100个`com.litebmc.InterfaceManagerMock`和`com.litebmc.InterfaceManagerMock`接口对象,对象名为`/com/litebmc/test/%d`,其中`%d`为从0开始的计数值。 * 注: mock服务会检测com.litebmc.interface_manager_test不在线时自动退出,如果需要保持时刻在线,可以设置DEBUG环境变量。 ## 对象管理模型 litebmc使用生产者和消费者模型管理dbus对象,生产者只负责实现接口并生成**server**对象,消费者订阅接口事件并在对象添加和删除事件并自动生成**client**对象。 具体实现由三个部分组成: 1. lb_core在管理dbus对象时会实现配套的[org.freedesktop.DBus.ObjectManager](https://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)接口,当 **服务端** 应用创建或消亡对象时自动发送`InterfacesAdded`和`InterfacesRemoved`信号。 2. lb_interface_manager负责发现系统的所有对象,实现了[com.litebmc.InterfaceManager](https://gitee.com/litebmc/interfaces/blob/master/dbus/lbInterfaceManager.yaml)接口,提供对象查询(`GetObjects`)和接口订阅(`SubscribeInterface`)函数。 `lb_interface_manager`会监听dbus总线上的`org.freedesktop.DBus.ObjectManager`的对象事件,维护一套对象字典,当客户端首次订阅、监听到对象变化或者客户端查询对象时会向订阅者发送匹配到的对象。 3. lb_core提供了`lb_subscribe_interface`函数,该函数会向`lb_interface_manager`订阅对象事件,当收到新的对象时会自动创建本地的`client`对象,应用只需要调用`client lib`提供的`[name]_on_changed`(如`Test_on_changed`)函数订阅`client`对象添加和删除事件,进而管理对象。