CTK 服务追踪

本文介绍了如何在CTK插件框架中使用ctkServiceTracker来追踪和使用服务,如LogService和LoginService。ctkServiceTracker简化了服务获取过程,解决了无法监听已存在服务的问题。文中详细讲解了Log插件提供日志服务,Login插件实现登录认证并调用LogService的过程,以及客户端如何启动和使用这些服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

访问服务

如果构建了一个 LogService 作为服务,并将其注册到服务注册中心。这时要在其它 Plugin 中使用 LogService 来记录日志,你可能会想到这种方式:

  • 使用 ctkPluginContext::getServiceReference() 获取服务引用
  • 通过 ctkPluginContext::getService() 获取指定 ctkServiceReference 引用的服务对象

然而,这需要编写非常复杂的代码。并且比较麻烦的是,有时想调用 LogService 服务,但它根本不可用!

也许你还会想到 ctkPluginContext::connectServiceListener(),但它是用于监听各种服务的。如果要监听某一种特定服务的话,则需要指定一个 filter,相对比较麻烦。此外,这种方式存在一个问题 - 无法监听到已经存在的 Service。

那么,到底该如何监听某一种特定的服务呢?为此,CTK 提供了一个 ctkServiceTracker 类,它对 Service 的获取要比 ServiceListener 简单许多,并且可以解决不能监听到已经存在的 Service 的问题。

Log 插件

我们需要做的第一件事,是实现 Lo

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一去丶二三里

有收获,再打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值