未来几个月计划
功能描述
按优先级排序:
- 修复新报告的 issue
- [ ] 2. 重构CPP到下一个大版本3.*, 同时这个2.*版本也会继续维护(修复一些提交的问题), 但是不会更新其他功能(会尽量不写太多API change, 但是为了优化使用, API change是必要的), 大概包含以下几点:
- 统一命名规范
- 减少复制
- 优化继承结构
- [ ] 3. kotlin 引入 mockFrame 以增加对kt + cpp的单元测试 #84 #118
- [ ] 4. kotlin 的 core 模块支持 kotlin native(可能可行), 如果可行的话就可以直接纯cpp启动miraicp
- TBD
原因
None
组件选择
both
- [x] 具体的异常类型应该在需要抛出的位置再定义,不要统合到一个exception.h里
TODO1:
Class_cpplib = reinterpret_cast<jclass>(env->NewGlobalRef(env->FindClass("tech/eritquearcus/miraicp/shared/CPPLib")));
改成
Class_cpplib = reinterpret_cast<jclass>(env->NewGlobalRef(env->FindClass("tech/eritquearcus/miraicp/shared/CPPLibMultiplatform")));
以及
if (!registerMethods(env, "tech/eritquearcus/miraicp/shared/CPPLib", method_table, 3)) {
if (!registerMethods(env, "tech/eritquearcus/miraicp/shared/CPPLibMultiplatform", method_table, 3)) {
我觉得可以用个宏/常量替换
- [x] 增加代码规范文档
希望主可以增加一个获取龙王的事件,谢谢啦^_^
- [ ] refresh需要用try包裹,失败后将init设为false
- [x] defer busy = false https://github.com/Nambers/MiraiCP/blob/9725693a09ab91710e0e98299ccee0b562d36a79/cpp/src/libloader/native/ThreadController.cpp#L85
- [x] PLUGIN_INFO改为传递指针而非引用,~~允许返回空指针用于异常检查~~不允许空指针
- [x] 保留events原有的构造函数,但改为protected,用作传入json的构造函数的委托构造
- [x] timeoutEvent改为在libloader线程处理,防止加载多个插件时倒计时被抛到其他插件
- [x] 加入线程池
- [x] timeoutEvent由libloader端tick处理,降低线程池占用
- [x] native 收不到包
- [x] api 文档样式崩坏
- [x] 重构一些内部实现
- [x] 插件接口noexcept,是否产生异常通过~~MiraiCPString~~ int返回
- [ ] 使用md5计算插件hash,并依此作为目标文件名复制temp插件
- [x] 降低工具链版本,close #149
- [ ] 添加wchar, wstring类型的支持
- [ ] 对所有const json对象,检查其key存在性后再使用
- [x] 更好的线程识别方案,受限于linux内核,线程名最大字符数为15,需要一些别的方案来存储线程识别符
- [ ] 使用md5计算插件hash,并依此作为目标文件名复制temp插件
用这个 https://github.com/stbrumme/hash-library
no planned anymore ><