上述内容主要介绍了在使用骨架提供的OfferService()
方法时的相关要求和注意事项,具体内容总结如下:
- 骨架提供了
OfferService()
方法,服务提供方的开发人员在满足一定条件时需在相应实例上调用该方法,这些条件包括:服务实现类已实例化、服务实例已初始化能处理请求、可提供事件状态给订阅的服务消费者。 - 从调用
OfferService()
开始,可能会分派方法调用到服务实例,若决定不再提供服务,则调用StopOfferService()
,且在其返回后不再向服务实例分派方法调用。ara::com
要求 AP 供应商在骨架类析构函数中,若实例正在提供服务,则内部执行StopOfferService()
。 - "停止提供" 仅在已存在的服务实例上调用,其在生命周期内在提供服务和不提供服务的状态间切换。
代码案例如下:
cpp
using namespace ara::com;
/**
* 对RadarService的实现 - RadarServiceSkeleton的子类
*/
class RadarServiceImpl;
int main(int argc, char** argv)
{
// 从命令行读取实例标识符
ara::core::string_view instanceIdStr(argv[1]);
RadarServiceImpl myRadarService(InstanceIdentifier(instanceIdStr));
// 进行特定于服务的初始化
myRadarService.init();
// 使服务实例可见/可用
myRadarService.OfferService();
// 进入主线程的等待状态,等待AppExecMgr信号或类似的东西
return 0;
}