资料介绍
软件简介
eventpp 是一个 C++ 事件库,它提供的工具允许应用程序组件通过调度事件并监听它们来相互通信。使用eventpp,您可以非常轻松地实现信号/插槽机制或观察者模式。
特性
-
支持同步事件调度和异步事件队列。
-
可配置和可扩展的策略和mixins。
-
通过mixins支持事件过滤器。
-
支持嵌套事件。在处理事件期间,侦听器可以安全地调度事件,追加/预置/插入/删除其他侦听器。
-
线程安全。支持多线程。
-
异常安全。大多数操作保证强异常安全。
-
用大量单元测试来保证质量。
-
速度快。EventQueue可以在1秒内处理10M事件(每毫秒10K事件)。CallbackList可以在1秒内调用100M回调(每毫秒100K回调)。CallbackList可以在1秒内添加/删除5M回调(每毫秒5K回调)。
-
灵活易用。
-
侦听器和事件可以是任何类型,不需要从任何基类继承。
-
纯头文件,没有源文件,无需构建。不依赖于其他库。
-
需要C++11(使用MSVC 2017,MSVC 2015,MinGW(Msys)gcc 7.2和Ubuntu gcc 5.4测试)。
-
用可移植的标准的C++编写。
使用 CallbackList
#include "eventpp/callbacklist.h" eventpp::CallbackListcallbackList; callbackList.append([](const std::string & s, const bool b) { std::cout << std::boolalpha << "Got callback 1, s is " << s << " b is " << b << std::endl; }); callbackList.append([](std::string s, int b) { std::cout << std::boolalpha << "Got callback 2, s is " << s << " b is " << b << std::endl; }); callbackList("Hello world", true);
使用 EventDispatcher
#include "eventpp/eventdispatcher.h" eventpp::EventDispatcherdispatcher; dispatcher.appendListener(3, []() { std::cout << "Got event 3." << std::endl; }); dispatcher.appendListener(5, []() { std::cout << "Got event 5." << std::endl; }); dispatcher.appendListener(5, []() { std::cout << "Got another event 5." << std::endl; }); // dispatch event 3 dispatcher.dispatch(3); // dispatch event 5 dispatcher.dispatch(5);
使用 EventQueue
eventpp::EventQueuequeue; dispatcher.appendListener(3, [](const std::string s, bool b) { std::cout << std::boolalpha << "Got event 3, s is " << s << " b is " << b << std::endl; }); dispatcher.appendListener(5, [](const std::string s, bool b) { std::cout << std::boolalpha << "Got event 5, s is " << s << " b is " << b << std::endl; }); // The listeners are not triggered during enqueue. queue.enqueue(3, "Hello", true); queue.enqueue(5, "World", false); // Process the event queue, dispatch all queued events. queue.process();
- qt用C++写的2048小游戏源代码 0次下载
- C和C++实物精选《C专家编程》 0次下载
- C和C++经典著作《C和指针》 0次下载
- C++ GUI Qt4编程(第二版)配套源代码汇总 0次下载
- C++ Socket网络编程大全源代码下载 25次下载
- Visual C++和MFC创建的应用程序基础知识 0次下载
- C++串口程序第三方类代码免费下载 6次下载
- C++的框架、库和资源资料汇总大全 6次下载
- C++的开源库大全详细资料说明 4次下载
- C++的框架、库和代码分析的资料大全 3次下载
- C++容器的使用代码资料总结免费下载 2次下载
- TMS320F28x 优化C/C++编译器用户指南 24次下载
- c280x / c2801x C / C++头文件和外周 实例快速启动 6次下载
- 如何在C++代码中使用C头文件 3次下载
- 嵌入式程序设计中C/C++代码的优化 25次下载
- 使用C++编写通用库并在 Rust 中使用它 (WASI) 581次阅读
- TensorRT 8.6 C++开发环境配置与YOLOv8实例分割推理演示 3295次阅读
- C++程序异常处理机制是什么 525次阅读
- 用chatGPT生成C++代码 1513次阅读
- C与C++混合编程是什么 739次阅读
- C++可移植性及多线程 689次阅读
- C++项目常见的命名规范 1741次阅读
- 如何确保整体代码质量 512次阅读
- C++语言的发展 464次阅读
- C++:引用的使用场景 3795次阅读
- C++封装:this指针 3191次阅读
- C++封装:类的作用域和实例化 3267次阅读
- Google的C++代码规范是全球最好的一份C++代码规范 7477次阅读
- 大神教你:嵌入式系统C++代码的变成技巧 3436次阅读
- 基于STM32F4的 C++封装(完整代码) 9386次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多