/log

Primary LanguageC++

基于CMAKE的跨平台C++网络库

这是我本人意义上的第一个项目,不断地调试,不断地推翻之前的设计进行重构,一直在思考怎样的设计比较合理, 代码量不大。但基本个文件都重构过2-3次。由于我很多东西还没有学完,所以这个网络库目前还很简陋。预计6月份上线 较为完整的版

日志模块

日志模块是跨平台地的,因为我少不了要在win写代码,用法也很简单,首先使用auto logger = SU_LOT_ROOT 获得一个logger,然后使用SU_LOT_XXX(logger) << 进行流式地写入日志。日志系统绝大部分模仿的sylar(github), 包含了很多设计模式,有很多c++技巧。是库里唯一一个完善的模块。

sock模块

模仿UNIX网络编程,对常用的sock函数配合日志系统进行了包裹,同时增加了一些常用的sock转换函数,由于unix网络编程只学了一部分, 该sock模块也简陋,同时它的日志器设计也存在一定问题,但暂时没有想到好的设计。

oop_sock模块

通过对serv和client的抽象,建立了三个类,一个是server的用户user类,server类,client类。user类设计很简单,是为了给后续应用留下 设计空间,比如聊天室的user和http的user,它的具体职能是不同的,但server类中有std::list进行用户的增删查。client很简单,只是简单地封装了 一些常用操作。

TinyStl

里面目前仅有一个stack,一个线程安全的stack。这部分暂时不会更新,我打算看完C++并行编程和STL源码剖析后,实现真正能用的,支持单线程和多线程的 高性能STL。

util

里面摆放各式各样的杂项函数,杂项类如:Timer类(程序计时用),print_in_two(打印数据二进制,学计算机操作系统用),单例模板类(LogMgr的单例用的这个)

配置系统

正在学,正在写,四月初可以写完?

该项目的未来规划

我未来会学习的几个库:muduo,sylar,workflow。三个库都读完理解可能要明年,这也就意味着我的项目完整上线应该是明年。

最近的计划:

  1. sock模块的完结上线
  2. 协程,线程模块上线。
  3. 增加一个能运行简单任务的http example