摘要: 线程池的基本思想:有一个异步任务队列,任何地方都可以往此队列中加任务,其中任务就是一个个待执行的函数,然后还有一个线程池,线程池中有一定数量的线程,线程池一经启动,每个运行的线程都会从这个异步队列中不断取出任务并执行! SyncQueue 1 #ifndef SYNCQUEUE_H 2 #defin 阅读全文
posted @ 2022-05-15 10:20 SSSnail 阅读(57) 评论(0) 推荐(0)
摘要: 1 template <typename T> 2 std::function<T> GetFunction(const string& funcName) 3 { 4 auto it = m_map.find(funcName); 5 if (it == m_map.end()) 6 { 7 au 阅读全文
posted @ 2022-05-15 09:47 SSSnail 阅读(54) 评论(0) 推荐(0)
摘要: 1 #ifndef LAZY_H 2 #define LAZY_H 3 #include <Optional.hpp> 4 #include <functional> 5 6 template<typename T> 7 struct Lazy 8 { 9 Lazy(){} 10 template 阅读全文
posted @ 2022-05-14 11:09 SSSnail 阅读(50) 评论(0) 推荐(0)
摘要: 1 #pragma once 2 #include <type_traits> 3 #include <utility> 4 #include <stdexcept> 5 6 template<typename T> 7 class Optional 8 { 9 using data_t = typ 阅读全文
posted @ 2022-05-14 10:23 SSSnail 阅读(54) 评论(0) 推荐(0)
摘要: 目前我学习到的很多框架都是用 c++98 写的,可能因为这些框架写成得比较早,因此没有注意 c++11的应用,但是时至今日,在 c++20 都快要问世之际,怎能还停留在 C++98 死于安乐呢? C++ 11 最强大的新特性就是她对于模板的加强,同时也是最复杂的特性(因为模板本来就复杂),但是模板的 阅读全文
posted @ 2022-05-14 08:26 SSSnail 阅读(40) 评论(0) 推荐(0)
摘要: 先来看看修改过后的软件目录结构: src里面的源文件分为五类: app:框架的入口,以前的mainwindow 就放在里面 libs:存放库文件(非插件,虽然插件也是库),以前的 JBus 就放在里面 plugins:存放普通插件,以前的 TestPlugin、StatusBarExtensionI 阅读全文
posted @ 2022-04-18 23:54 SSSnail 阅读(64) 评论(0) 推荐(0)
摘要: 增加 DockWidget 的配置文件 重构 JExtensionManageInterface 并实现 DocManager 1 #ifndef JEXTENSIONMANAGEINTERFACE_H 2 #define JEXTENSIONMANAGEINTERFACE_H 3 4 #inclu 阅读全文
posted @ 2022-04-17 21:09 SSSnail 阅读(80) 评论(0) 推荐(0)
摘要: 首先看看配置文件的改动: { "Extension": [ { "ExtensionPoint": { "pointName": "Logger", "pointIcon": "./images/plane.png" }, "ExtensionImpl": { "pluginName": "JLog 阅读全文
posted @ 2022-04-17 12:44 SSSnail 阅读(59) 评论(0) 推荐(0)
摘要: 我们将 mainwindow 分为几大部分(dock区域,actionToolBar,MenuBar、StatusBar,center),每一个部分我们都不直接在 MainWindow上实现,而是利用扩展点/扩展实现的机制,将某一个 action或者某一个status item 交给插件去实现,所以 阅读全文
posted @ 2022-04-17 09:14 SSSnail 阅读(84) 评论(0) 推荐(0)
摘要: 行文至此,我们有必要说一下 JFrame 的架构了 首先 JBus 是一个动态库,不依赖框架的加载,只要通过 API 调用,随时都能提供 订阅/发布 的功能,但是这里 JLogger 依赖于框架的加载,所以在 JLogger 还没加载起来的时候,内核的日志信息是打印在控制台的! JLogger 加载 阅读全文
posted @ 2022-04-16 15:17 SSSnail 阅读(192) 评论(0) 推荐(0)