TreeFrog (C++ Web Framework)开发之源码分析

本文分析了TreeFrog框架的源码,重点介绍了tfmanager和tfserver的角色,以及它们如何处理HTTP请求。在多线程模型中,每个连接由单独的线程处理。开发者的工程生成动态库,由tfserver加载并映射URL到controller、action和argument。后续将探讨fileserver示例及model和view的使用。
摘要由CSDN通过智能技术生成

    为了弄明白 TreeFrog 的逻辑,我分析了它的源码。将程序开始至开发人员自己的工程如何被调用的路线理清楚了。

    工程 tfmanager 是整个框架的起点,它生成 treefrog 守护进程,还记得吗,"treefrog -e dev" 这个命令,我们用来启动网站的?

    工程 tfserver 是真正的站点入口,负责处理 http 请求,它生成 tadpole 。

    tfmanager 会监控 tfserver 的运行,如果 tfserver 莫名崩溃,会重启它。

    tfserver 的多任务处理模型有三种:多进程、多线程、混合型。这里我们只分析多线程模型。要使用哪种模型可以通过配置文件指定,在 Windows 下,如果不指定,则默认使用多线程模型。多线程模型为每个 http 连接生成一个线程进行处理。

    开发者使用 treefrog 建立的工程,生成的是动态库,会被 tfserver 加载,tfserver 将 URL 处理为 controller 、 action 、 argument 三部分,参考 URL Routing 这个文档。tfserver 分析 URL 后,提取 controller 名字,找到开发者的 controller ,用 action 和 arguments 为参数进行调用。而 model 和 view 则是由 controller 进行关联的。就这样,一切发生了。

    下面是我分析源码后绘制的函数调用图,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

foruok

你可以选择打赏

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

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

打赏作者

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

抵扣说明:

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

余额充值