BS 0.1.0 构建中
This commit is contained in:
200
Runtime-Modules-README.md
Normal file
200
Runtime-Modules-README.md
Normal file
@@ -0,0 +1,200 @@
|
||||
# Convention-CPP Runtime 模块说明
|
||||
|
||||
本文档描述了基于 `Convention-Template` 为 `Convention-CPP` 实现的Runtime模块。
|
||||
|
||||
## 📁 模块结构
|
||||
|
||||
### 完整实现的模块
|
||||
|
||||
#### 1. **File.hpp** - 文件操作工具
|
||||
- **ToolFile类**: 面向对象的文件系统操作
|
||||
- **完整功能**: 文件读写、路径操作、目录管理
|
||||
- **链式操作**: 支持流畅的API调用
|
||||
- **跨平台**: 基于std::filesystem
|
||||
|
||||
**核心功能**:
|
||||
- 文件存在性检查、类型判断
|
||||
- 文本/二进制文件读写
|
||||
- 目录遍历和管理
|
||||
- 路径组合操作符 `|`
|
||||
- 文件对话框接口(需平台实现)
|
||||
|
||||
#### 2. **GlobalConfig.hpp** - 全局配置管理
|
||||
- **GlobalConfig类**: 配置文件管理和日志系统
|
||||
- **ProjectConfig类**: 项目级配置特化
|
||||
- **JSON支持**: 基于nlohmann/json
|
||||
- **完整功能**: 配置读写、日志记录
|
||||
|
||||
**核心功能**:
|
||||
- 键值对配置管理
|
||||
- 自动配置文件生成
|
||||
- 时间戳日志系统
|
||||
- 迭代器支持(foreach循环)
|
||||
- 文件操作集成
|
||||
|
||||
#### 3. **Math.hpp** - 数学工具库
|
||||
- **完整实现**: 常用数学函数和工具
|
||||
- **模板化**: 支持多种数值类型
|
||||
- **高性能**: 基于标准库优化
|
||||
|
||||
**核心功能**:
|
||||
- 数学常量和基础运算
|
||||
- 三角函数、指数对数函数
|
||||
- 插值函数(Lerp, InverseLerp)
|
||||
- 随机数生成器
|
||||
- 浮点数比较工具
|
||||
|
||||
### 接口实现的模块
|
||||
|
||||
#### 4. **Web.hpp** - 网络工具模块
|
||||
- **ToolURL类**: URL解析和操作
|
||||
- **HttpClient类**: HTTP客户端接口
|
||||
- **接口状态**: 完整API设计,需HTTP库实现
|
||||
|
||||
**设计功能**:
|
||||
- URL验证和属性解析
|
||||
- 文件类型检测
|
||||
- HTTP GET/POST方法
|
||||
- 异步下载功能
|
||||
- URL编码/解码
|
||||
|
||||
**实现要求**: 需要libcurl或类似HTTP库
|
||||
|
||||
#### 5. **Plugins.hpp** - 插件系统
|
||||
- **PriorityQueue类**: 完整的优先队列实现
|
||||
- **IPlugin接口**: 插件基类定义
|
||||
- **PluginManager类**: 插件管理器接口
|
||||
|
||||
**设计功能**:
|
||||
- 动态插件加载/卸载
|
||||
- 插件依赖管理
|
||||
- 平台特定插件支持
|
||||
- 事件系统集成
|
||||
- 优先级队列调度
|
||||
|
||||
**实现要求**: 需要动态库加载机制
|
||||
|
||||
#### 6. **EasySave.hpp** - 序列化系统
|
||||
- **EasySave类**: 主要序列化接口
|
||||
- **EasySaveSettings**: 配置结构
|
||||
- **接口状态**: 基础JSON实现,完整功能需扩展
|
||||
|
||||
**设计功能**:
|
||||
- 多格式序列化(JSON/Binary)
|
||||
- 加密和压缩支持
|
||||
- 缓存系统
|
||||
- 备份/恢复机制
|
||||
- 键值管理
|
||||
|
||||
**实现要求**: 需要加密库和压缩库
|
||||
|
||||
### 继承的模块
|
||||
|
||||
#### 7. **Config.hpp** - 基础配置(已存在)
|
||||
- **完整实现**: 平台判断、字符串工具、内存管理
|
||||
- **基础设施**: 为其他模块提供基础功能
|
||||
|
||||
#### 8. **Architecture.hpp** - 核心架构(已存在)
|
||||
- **完整实现**: 依赖注入、事件系统、时间线管理
|
||||
- **设计模式**: 单例、依赖注入、观察者模式
|
||||
|
||||
## 🔧 编译配置
|
||||
|
||||
### 依赖库
|
||||
- **标准库**: C++17 std::filesystem
|
||||
- **可选依赖**: nlohmann/json(配置管理)
|
||||
- **待实现依赖**:
|
||||
- libcurl(Web模块)
|
||||
- OpenSSL/AES库(EasySave加密)
|
||||
- zlib(EasySave压缩)
|
||||
|
||||
### CMake配置
|
||||
已在主CMakeLists.txt中添加依赖查找:
|
||||
```cmake
|
||||
find_package(nlohmann_json QUIET)
|
||||
```
|
||||
|
||||
## 🚀 使用示例
|
||||
|
||||
### 文件操作
|
||||
```cpp
|
||||
#include "Convention/[Runtime]/File.hpp"
|
||||
using namespace Convention;
|
||||
|
||||
ToolFile file("data/config.txt");
|
||||
if (file.Exists()) {
|
||||
auto content = file.LoadAsText();
|
||||
// 处理内容
|
||||
}
|
||||
|
||||
// 链式操作
|
||||
ToolFile dataDir("assets");
|
||||
auto configFile = dataDir | "config" | "settings.json";
|
||||
```
|
||||
|
||||
### 配置管理
|
||||
```cpp
|
||||
#include "Convention/[Runtime]/GlobalConfig.hpp"
|
||||
using namespace Convention;
|
||||
|
||||
GlobalConfig config("./data");
|
||||
config["username"] = "player1";
|
||||
config["level"] = 5;
|
||||
config.SaveProperties();
|
||||
|
||||
// 日志记录
|
||||
config.Log("Info", "Game started");
|
||||
```
|
||||
|
||||
### 数学运算
|
||||
```cpp
|
||||
#include "Convention/[Runtime]/Math.hpp"
|
||||
using namespace Convention;
|
||||
|
||||
auto result = Math::Sin(Math::DegToRad(90.0f));
|
||||
auto random_value = Math::RandomRange(1, 100);
|
||||
bool is_equal = Math::Equal(3.14f, Math::Constants<float>::PI, 0.01f);
|
||||
```
|
||||
|
||||
## 📋 实现状态总结
|
||||
|
||||
| 模块 | 状态 | 完成度 | 备注 |
|
||||
|------|------|--------|------|
|
||||
| Config | ✅ 完整 | 100% | 已存在 |
|
||||
| Architecture | ✅ 完整 | 100% | 已存在 |
|
||||
| File | ✅ 完整 | 95% | 平台对话框需实现 |
|
||||
| GlobalConfig | ✅ 完整 | 100% | 功能完整 |
|
||||
| Math | ✅ 完整 | 100% | 功能完整 |
|
||||
| Web | 🔧 接口 | 30% | 需HTTP库实现 |
|
||||
| Plugins | 🔧 接口 | 40% | 需动态加载实现 |
|
||||
| EasySave | 🔧 接口 | 20% | 需加密压缩实现 |
|
||||
|
||||
## 🎯 下一步实现建议
|
||||
|
||||
### 高优先级
|
||||
1. **完善Web模块**: 集成libcurl实现HTTP功能
|
||||
2. **完善EasySave**: 实现完整的序列化系统
|
||||
3. **文件对话框**: 实现平台特定的文件选择功能
|
||||
|
||||
### 中优先级
|
||||
1. **插件系统**: 实现动态库加载机制
|
||||
2. **加密支持**: 为EasySave添加AES加密
|
||||
3. **压缩支持**: 为EasySave添加Gzip压缩
|
||||
|
||||
### 低优先级
|
||||
1. **性能优化**: 针对关键路径进行优化
|
||||
2. **单元测试**: 为各模块添加测试用例
|
||||
3. **文档完善**: 添加详细的API文档
|
||||
|
||||
## 📚 设计原则
|
||||
|
||||
本实现遵循以下设计原则:
|
||||
|
||||
1. **模块化**: 每个模块功能独立,依赖关系清晰
|
||||
2. **类型安全**: 大量使用模板和类型检查
|
||||
3. **RAII**: 资源管理遵循RAII原则
|
||||
4. **异常安全**: 提供清晰的错误处理机制
|
||||
5. **跨平台**: 基于标准库,支持主要平台
|
||||
6. **向前兼容**: 接口设计考虑未来扩展性
|
||||
|
||||
这个实现为Convention-CPP提供了完整的Runtime基础设施,为后续开发提供了坚实的基础。
|
Reference in New Issue
Block a user