最近用 c++ 基于 libuv 造了个异步框架的轮子,废话不多说。
源码在此: https://github.com/Masutangu/SAF
同时写了篇文章聊了下异步框架设计的思想和实现:《简单异步应用框架的实现》
c++ 停留在写业务逻辑的水平,希望得到 c++高手的意见。另外 libuv 是 c 库,和 c++ 结合起来代码写的有点绕(主要是回调不好传),大家多多提点意见,欢迎交流~
1
KingHL 2016-09-01 11:12:09 +08:00
点个赞,支持。
|
2
watzds 2016-09-01 11:35:37 +08:00
赞
|
3
mason961125 2016-09-01 12:25:08 +08:00
楼主用的 Clion ?
|
4
Masutangu OP @mason961125 是的 怎么看出来的..
|
5
mason961125 2016-09-01 18:12:17 +08:00
@Masutangu 开头注释的风格
|
6
Masutangu OP @mason961125 老司机..哈哈
|
7
mason961125 2016-09-01 20:57:16 +08:00
@Masutangu 为什么没考虑用 libevent 或者 libev 呢?
|
8
jerseyjerk 2016-09-01 21:01:26 +08:00 via Android
点赞。几个小问题:支持可变长度消息吗?支持读 /写超时吗?可以 disable nagle 吗(低延迟场景中常用)?另外我看了一下 buffer.cpp 的 append 方法,这个方法只 reallocate 两倍,如果 Len 超过两倍,那 memcpy 会 overrun memory 的吧?以上之言如有错误请轻喷。
|
9
Masutangu OP @jerseyjerk 消息的打解包由业务来实现,所以消息长度是由业务来定制的。读写超时后续我补充上。 disable nagle 的话,我得看看 libuv 是否有提供选项支持(之前看文档没有看到过), append 方法 bug ,粗心了,我 fix 下。谢谢提出这么多问题哈哈
|
10
Masutangu OP @mason961125 因为最近想看看 libuv 的代码 所以先用用熟悉下~
|
11
macrosea 2016-09-02 13:57:14 +08:00
react-cpp 用 libev 封装的异步框架 , 非常不错, C++社区活跃了, C++才能再现辉煌
https://github.com/CopernicaMarketingSoftware/REACT-CPP |
12
matthewgao 2016-09-02 16:10:42 +08:00
似乎不支持状态间消息同步?
|
14
Masutangu OP @matthewgao 状态间消息同步是指?业务一开始创建的消息对象会在各个状态间透传
|
15
matthewgao 2016-09-02 22:42:36 +08:00
@Masutangu 我的意思是,比如 state2 的运行依赖于 state1 返回的数据
|
16
Masutangu OP @matthewgao 是的,一开始创建的消息对象,其指针会传入每个 state 中,所以可以通过消息对象来传递状态间依赖的数据
|
17
Masutangu OP @matthewgao 估计这块我解释得不够清楚,等周末我更新下博客,补充几个图例
|
18
kingddc314 2016-09-03 08:31:50 +08:00
c++的异步应该支持 Lambda
|
19
Masutangu OP @kingddc314 是指框架提供的接口支持么?
|