StupidBeauty
Read times:1470Posted at: - no title specified

Tufao1.2.1文档翻译:Tufão的插件系统,Tufão's plugin system

内容目录

通过例子来理解这个功能

Tufao::HttpPluginServer类

插件

胶水!

在开发网页程序时,妳通常会面临一个问题,就是,所开发的程序需要长年持续运行而不停止。

通常,在解释型语言中,对于这个问题的解决办法就是,每当它发生变化时便重新载入源文件。在C++中,我们可以通过插件来做出类似的行为。

Tufão提供 Tufao::HttpPluginServer 类和一个QtCreator 插件,来将Qt 插件与 Tufao::HttpServerRequestRouter 整合在一起。

通过例子来理解这个功能

为了理解 Tufão 的插件系统,让我们再重新看一下 重新研究 一下世界妳好! 中编写的那个程序。 这个程序的代码应当与Tufão 的QtCreator 插件通过 application 模板生成的代码相同。

Tufao::HttpPluginServer

Tufao::HttpServerRequestRouter 提供 了一个健壮的路由接口,如果 我们可以告诉它来将文件系统上的某个插件当作处理器来使用的话,那么会狠好用。这个,就是 Tufao::HttpPluginServer 所做的事。

Tufao::HttpPluginServer 实现 Tufao::AbstractHttpServerRequestHandler 接口,因此, 妳可以在 Tufao::HttpServerRequestRouter 中使用它来作为一个处理器。 Tufao::HttpPluginServer 有着它自己的映射规则和处理器集合,但是,它会从插件中载入处理器。

在之前创建的插件服务器中,我们给构造函数传入了一个文件。这就是我们向 Tufao::HttpPluginServer 设置插件的方式。 这个文件可使用任何文本编辑器来编辑,当它发生改变时, Tufão 会重新载入它。参考 Tufao::HttpPluginServer::setConfig 以学习该如何编辑这个文件。

插件

插件plugin)模板

废话少说 !开始创建插件。首先 ,妳必须启动 QtCreator ,打开 新项目 创建 对话框,选择 Tufão 网页服务器项目( Tufão Web Server project )下的插件( plugin )模板。

将会生成以下文件:

Tufao::HttpServerPlugin 类只是被 Tufao::HttpPluginServer 使用的一个 工厂 ,用来实例 化新的处理器对象。如果 妳想创建一个能被 Tufao::HttpPluginServer 使用的插件的话,那么,妳必须这么做:

  1. 1.使用Qt的插件系统

    1. a.创建一个基于qmake的项目

    2. b. 使用 lib 模板 plugin 配置选项

  2. 2. 在这个插件类中实现 Tufao::HttpServerPlugin 接口( 别忘了带上 Q_INTERFACES

  3. 3.使用Q_PLUGIN_METADATA来向Qt 告知妳的插件的元数据

参考 Tufao::HttpServerPlugin 以了解更多细节。

胶水

最后我们将创建出两个东西:

  • •. 一个支持插件的程序

  • •. 一个插件

唯一缺少的东西就是,要告诉这个程序来使用我们刚才创建的插件。要做到那一点的话,我们需要:

  • •. 编辑 我们的程序中插件服务器所使用的那个配置文件。 在前面写的那个程序中,这个配置文件就是程序的工作目录中一个名为 routes.json 的文件。

以下是一个简单的示例(妳可以自己修改并在日后使用它)

{

"version": 0,

"plugins": [

{

"name": "myplugin",

"path": "/path/to/your/plugin/binary"

}

],

"requests": [

{

"path": "^/plugin$",

"plugin": "myplugin"

}

]

}

之前 ,当妳运行这个程序时, Tufão尝试 过寻找 routes.json 文件 ,但是失败了。现在, 妳可以重启那个程序, 这次,程序将会成功找到 routes.json 文件。

Tufão 找到 routes.json 文件之后 ,就会持续监视该文件,当文件发生变化时便重新载入各个插件。

参考

Tufao::HttpServerPlugin

Your opinions

Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4