当前位置: 首页 > 工具软件 > TeamTalk5 > 使用案例 >

TeamTalk Base静态库说明

梅宏盛
2023-12-01

1. Teamtalk将一些基础模块编译成静态库供其他模块使用

  • 这些基础模块主要包括:
  1. slog模块
    slog模块依赖于log4cxx,实际是对log4cxx的进一步封装。

  2. configure模块
    该项目配置解析为ini配置简化版,基本逻辑是读取文本每一行数据判断是否是name=value结构,然后存入map<string name, string value>。

  3. UtilPdu模块
    字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位,该模块实现了了字节流数据处理的一些工具类。

  4. IM_PduBase模块
    用于TeamTalk通讯数据包的读取解析 依赖于UtilPdu工具类,依赖于protobuf第三方库

  5. EncDec模块
    主要用于AES加解密和MD5计算

  6. threadpool模块
    使用现有线程库(pthread.h)实现一个工作线程池,工作线程使用std::list实现任务队列,使用条件变量来解决生产者消费者的竞争问题

  7. Lock模块
    使用pthread.h封装了普通锁、读写锁、普通局部锁和读写局部锁

  8. NetLib模块
    主要用于处理tcp连接,自己实现了一个网络库

  9. HttpParser模块
    TeamTalk http解析实际上是利用了ngnix的http_parse解析库。

  10. IMConn模块
    利用netlib封装了一套比较通用的tcp连接基础类,业务类的连接像CLoginConn用于登录服务器连接和CHttpConn用于http连接等可继承该类重写实现自己的业务逻辑。

  11. HttpClient模块
    HttpClient利用curl库和jsoncpp实现了http客户端Get/Post和语音数据的上传下载;http body主要为json格式,jsoncpp主要服务于该json数据的组装和解析。

2. 源码

链接:TeamTalk_BlueBling

 类似资料: