slog模块
slog模块依赖于log4cxx,实际是对log4cxx的进一步封装。
configure模块
该项目配置解析为ini配置简化版,基本逻辑是读取文本每一行数据判断是否是name=value结构,然后存入map<string name, string value>。
UtilPdu模块
字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位,该模块实现了了字节流数据处理的一些工具类。
IM_PduBase模块
用于TeamTalk通讯数据包的读取解析 依赖于UtilPdu工具类,依赖于protobuf第三方库
EncDec模块
主要用于AES加解密和MD5计算
threadpool模块
使用现有线程库(pthread.h)实现一个工作线程池,工作线程使用std::list实现任务队列,使用条件变量来解决生产者消费者的竞争问题
Lock模块
使用pthread.h封装了普通锁、读写锁、普通局部锁和读写局部锁
NetLib模块
主要用于处理tcp连接,自己实现了一个网络库
HttpParser模块
TeamTalk http解析实际上是利用了ngnix的http_parse解析库。
IMConn模块
利用netlib封装了一套比较通用的tcp连接基础类,业务类的连接像CLoginConn用于登录服务器连接和CHttpConn用于http连接等可继承该类重写实现自己的业务逻辑。
HttpClient模块
HttpClient利用curl库和jsoncpp实现了http客户端Get/Post和语音数据的上传下载;http body主要为json格式,jsoncpp主要服务于该json数据的组装和解析。