# c++通用模块 **Repository Path**: pejoicen/cpp-general-module ## Basic Information - **Project Name**: c++通用模块 - **Description**: 整理常用的功能模块 - **Primary Language**: C++ - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-09-03 - **Last Updated**: 2023-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # c++通用模块 #### 介绍 整理常用的功能模块 类 #### 软件架构 软件架构说明 1. Buffer 数据缓存 1. BufBlock 1. 一块内存来缓存数据; 2. 不支持“帧”数据,一次写入一块数据、一次读取一块数据; 2. BufQueue 1. 一个Buf队列,两种分配内存的方式:①动态分配;②静态分配 1. 动态分配:构造时确定队列深度,使用时动态分配每个元素的大小; 2. 静态分配:构造时确定队列深度和每个Buf的大小; 2. 提供以一帧(一次操作一个Buf)为单位的写入、读取接口; 3. 提供更灵活的读写接口,可以操作一个Buf中的部分数据; 4. 提供Buf中的数据地址和数据量接口,用户可自行拷贝或处理数据,随后切换到下一个Buf; 5. 可以把size设置很多,实际使用的时候可能根本就用不到这么多。增加了获取内存占用空间的函数; 2. File 文件操作 1. MyWinFile 1. 使用Windows API 创建、打开文件,多队列读写文件; 2. MyWinFileWithCache 读文件使用内存缓存。 2. MyWinFileWithCache 1. 继承于MyWinFile,增加读、写缓存功能; 2. 使能读、写缓存,随后启动一个独立的线程自动拷贝数据。 3. String 字符串处理 1. MyFileName 文件名处理 支持TCHAR自动识别(计划) 1. 文件名称处理,将文件名称划分为①路径②文件名③扩展名(类型名) 2. 将字符串转换成指定的类型 4. Socket 网络传输 1. ConsoleSocket A0.0.1 1. MySocket类 封装基本操作 和 文件处理(待完善) 2. 实现客户端向服务端发送文件。 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)