Applications框架(翻译官网pdf)

9 篇文章 0 订阅

Applications with POCO

1、POCO应用程序框架,支持以下几种需求:

     (1)命令行参数处理;(2)配置文件;(3)初始化和关闭;(4)日志。

2、POCO支持以下两种类型的应用程序:命令行应用程序和服务器应用程序。

Application Subsystems

3、一个应用程序由不同的subsystems组成;

    Subsystems可以帮助我们初始化和关闭应用程序;

    当应用程序被初始化后,所有注册的subsystems也被初始化;

    当应用程序被关闭后,所有注册的subsystems也被关闭;

The Subsystem Class (Subsystem类)

4、Subsystems必须通过实现一个Poco::Util::Subsystem的子类;

   const char* name() const                     返回子系统名称

   void initialize(Application& app)              初始化子系统

   void uninitialize(Application& app)          关闭子系统

   void reinitialize(Application& app)           重新配置子系统

5、void defineOptions(OptionSet& options)    允许一个subsystem去定义它自己的命令行参数

    如果一个subsystem想去定义它自己的命令行参数,必须实现其成员函数

    为了有效的处理选择参数,一个subsystem应该去绑定参数到配置属性中或者确定一个返回值去处理选择的参数

    然而,选择的参数将传递给handleOption()成员函数,你可能不知道怎么去处理它。

Command Line Applications(命令行应用程序)

6、命令行应用程序通过创建一个Poco::Util::Application的子类来实现

    应用程序是一个Subsystem的子类

    有一些虚成员函数,可以重载  

    可以从Subsystem中已经知道有以下函数:

    void initialize(Application& self)
    void reinitialize()
    void uninitialize()
    void defineOptions()

7、int main(const std::vector<std::string>& args)

    应用程序的入口, args vector包含所有选择的还未处理的命令行参数。

    应用程序包括一些退出代码,如EXIT_OK, EXIT_USAGE等。

Server Applications

8、Server applications 通过创建Poco::Util::ServerApplication的子类来实现。
Poco::Util::ServerApplication也是Poco::Util::Application的子类。

9、服务器应用程序可以以命令行形式作为Windows服务程序或Unix守护程序运行

10、通常情况下,一个服务器程序可以以一个后台线程运行。因此,main()将启动

一个线程,然后等待一个外在的请求去中止运行应用程序(waitForTerminationRequest())。

Configuration Files

11、默认创建两个配置文件:

writable MapConfiguration, PRIO_APPLICATION
readonly SystemConfiguration, PRIO_SYSTEM

12、在启动后,一个叫作APP的应用程序会去寻找文件

named APP(d).{xml,ini,properties}
void MyApplication::initialize(Application& self)
{
loadConfiguration(); // load default configuration files
Application::initialize(self);
}

Command Line Options

13、应用程序可以定义和处理命令行参数。

14、命令行参数依据平台的不同,经常有以下格式写法:

> /option or /option=value on Windows
> -o, -ovalue, --option or --option:value on Unix

Defining Options

15、Options通过OptionSet::addOption()添加它们;

16、通过重载虚函数defineOptions() 来实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值