C++11消息总线怎么使用
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇内容介绍了" C++11消息总线怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是 C
千家信息网最后更新 2025年02月02日C++11消息总线怎么使用
本篇内容介绍了" C++11消息总线怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
什么是 C++11 消息总线 ?
最近在 C++
项目中需要处理对象之间大量的消息,如果使用传统的 SendMessage
和 PostMessage
会使得对象之间的耦合程度过高,因此我们最后采用了一个基于 C++11
的消息总线库 Message Bus
,它有下面的一些优点:
使用简单,发送和接收只需要一条语句,并使用
lambda
来简化函数的回调可以使得模块之间高度解偶,这依赖于一个全局的
MessageBus
对象支持发送自定义消息或者数据包
支持发送有参和无参消息
基本原理
你可以将 Message Bus
理解为一个全局的消息通道,你可以将自己的加上标识字的消息放到这个通道上,别的模块就可以通过这个标识字来拿到你的消息,这些都依赖与一个全局对象 MessageBus g_bus
,它就充当了全局消息通道。
基本使用方法
发送和接受无参消息
发送:
// g_bus 是一个全局变量
extern MessageBus g_bus;
// 发送一个带有 `InitAll` 标识字的无参数消息
g_bus.SendReq("InitAll");
接收:
// g_bus 是一个全局变量
extern MessageBus g_bus;
// 绑定带有 `InitAll` 标识字的消息,一般在构造函数中进行.
// 一收到消息,InitAll 函数就会被调用,使用了简单粗暴 lambda 表达式
g_bus.Attach([this](){ InitAll(); }, "InitAll");
// 解除绑定带有 `InitAll` 的消息,一般在析构函数中进行
g_bus.Remove("InitAll");
发送和接受有参消息
发送:
// g_bus 是一个全局变量
extern MessageBus g_bus;YourType m_yourType;
// 发送一个带有 `YourType` 类型参数的有参消息
g_bus.SendReq(m_yourType, "YourType");
接收:
// g_bus 是一个全局变量
extern MessageBus g_bus;
// 绑定带有 `YourType` 标识字的有参消息,一般在构造函数中进行.
// 一收到消息,you_function 就会被调用,
// 并且发送时候传递的 `m_yourtype` 参数传递到这里的 `your_type`,
// 最终传递到 `you_function`,是不是非常简单。
g_bus.Attach([this](const YourType& your_type){ you_function(your_type); }, "YourType");
// 解除绑定 `YourType` 标识的消息,一般在析构函数中进行
g_bus.Remove("YourType");
" C++11消息总线怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
消息
全局
函数
总线
变量
对象
之间
参数
通道
内容
更多
模块
知识
支持
实用
粗暴
学有所成
接下来
优点
传统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
图形矫正需要数据库吗
万达金融网络安全吗
hcna网络技术实操指南
我的世界服务器红石工业
软件开发方向个人简历
奉贤区常规软件开发资费
5g网络技术的认识
王思聪专业服务器
电商网站服务器
网络技术对人际交往的影响
钢琴多媒体教学软件开发
适合使用关系型数据库
数据库设计有哪些不足
王者人脸服务器出现问题怎么办
奇偶商城哪家好 软件开发
沧州网络技术服务
cforeach 数据库
剑与远征会有一堆服务器吗
网络安全涉及法律 法规
5g网络技术包括什么
芜湖门店管理软件开发哪家好
软件开发的原型设计要求
网络技术对商业的推动
软件开发的商机分析
服务器可见性隐藏怎么解决
监控摄像服务器
数据库设计有哪些不足
开展网络安全法教育记录
奇偶商城哪家好 软件开发
软件开发工期慢怎么跟客户解释