×
Namespaces

Variants
Actions
Revision as of 13:25, 8 January 2011 by flycarl (Talk | contribs)

Qt Service Framework 文档

From Nokia Developer Wiki
Jump to: navigation, search

Contents

Qt Service Framework

Qt服务框架(Qt Service Framework )使客户端可以发现和实例化任意服务(service)。



命名空间

QtMobility API 放在 QtMobility 的命名空间. 这是为以后Mobility APIs 集成到 Qt做准备. 参考Quickstart guide中的例子体会这个命名空间如何影响使用QtMobility的开发development.


简介

Qt Service Framework 定义了统一的方法 在不同的平台间查找,实现和访问各种service。

利用 服务接口(service interface),版本号(version),基于QObject的内省(introspection)这3个信息,可以兼容和访问多个平台的某个service, 使得通过Qt的客户端可以不依赖平台的调用服务,实现跨进程的通信(IPC)。


概览

一个service是一个独立的组件提供给客户端(client)定义好的操作。客户端可以通过service的名称,版本号和service对象提供的接口来查找服务。 查找到service后,框架启动service并返回一个指针。QServiceManager 是做这些事情的主要接口,客户端通过QserviceManager来访问service。service也可以像一个客户端一样向service framework查询安装在系统上的其他service。

服务提供者通过插件(plug-ins)来实现。QServicePluginInterface是plug-in的主要接口。为了避免客户端依赖某个具体的库,服务必须继承自QObject。这样QMetaObject 系统可以用来动态的发现和唤醒服务的能力。要使QmetaObject机制充分的工作,service必须满足,其所有的方法都是通过 signal,slot,property 或invokable function来实现(参阅Q_INVOKABLE宏的定义)

每个service plug-in 只实现一个service,但是可以为多个接口提供多个实现。这样 service (plug-in)具有一定的后向兼容性,即使 当你需要使用一个新的接口名而破坏了主要的接口服务的兼容性,已有的客户端可以继续使用之前的服务接口,新的客户端可以利用新的接口。

service可以接受远程进程。在service管理器上注册后 进程通过signal,slot,invokable function和property来通信,就像本地对象一样。service可以设定为在客户端间共享,或针对一个客户端。


如何使用框架

这一章假设用户想访问文件存储服务(FileStorage service) Using the Framework


This section assumes that the user wants to access the FileStorage service which offers an implementation for the com.nokia.qt.examples.FileStorage interface The service framework enables multiple ways of accessing those implementations.

QServiceManager is the main class to lookup and instantiate services. Services can be found by constraining the search via service meta data or by using the default lookup mechanism.

相关链接

718 page views in the last 30 days.
×