17:高级篇 - 访问 CTK 服务的最佳方式

Posted 一去丶二三里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17:高级篇 - 访问 CTK 服务的最佳方式相关的知识,希望对你有一定的参考价值。

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

访问服务的方式

在使用 CTK 时,必须始终将服务认为是动态的、不稳定的,轻轻地我来了,轻轻地我又走了。。。服务可能随时消失,或变得不可用!所以,在访问服务时,建议使用以下几种方式。

  • 最原始的方式

服务可能随时失败,为了以防万一,有必要在使用之前加上判断条件。

  • 使用 ServiceListener

利用 ctkPluginContext::connectServiceListener(),可以动态感知所有 service 的注册和注销。若要监听某一个特定的服务,可以通过添加 filter 来进行过滤。

  • 使用 ctkServiceTracker

ctkServiceTracker 提供了更加有效的监听 service 的方式,使得对 service 的获取更加简洁,同时也解决了不能监听到已存在 service 的问题。

下面,以 LogService 为例来分别看看这几种用法。

糟糕的方式

来看一下比较糟糕的、但却很常见的代码:

ctkServiceReference reference = context-><

以上是关于17:高级篇 - 访问 CTK 服务的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章

11:高级篇 - CTK 事件管理机制(插件间通信)

14:高级篇 - CTK 服务工厂 简述

13:高级篇 - CTK 事件管理机制(signal/slot)

09:进阶篇 - CTK 插件和服务

12:高级篇 - CTK 事件管理机制(sendEvent/postEvent)

15:高级篇 - CTK 事件与监听