Boost C++ 库

...世界上最受尊敬和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

第 33 章。Boost.Signals2

Douglas Gregor

Frank Mori Hess

根据 Boost 软件许可协议 1.0 版发布。(请参阅随附文件 LICENSE_1_0.txt 或在 https://boost.ac.cn/LICENSE_1_0.txt 复制副本)

目录

简介
Signals2
教程
如何阅读本教程
你好,世界!(初学者)
调用多个槽
向槽传递值和从槽返回值
连接管理
示例:文档-视图
使槽能够访问其连接 (高级)
更改信号的 Mutex 类型 (高级)。
链接 Signals2 库
示例程序
其他教程示例
文档-视图
带有 deconstruct() 的后构造函数和预析构函数
参考
头文件 <boost/signals2.hpp>
头文件 <boost/signals2/connection.hpp>
头文件 <boost/signals2/deconstruct.hpp>
头文件 <boost/signals2/dummy_mutex.hpp>
头文件 <boost/signals2/last_value.hpp>
头文件 <boost/signals2/mutex.hpp>
头文件 <boost/signals2/optional_last_value.hpp>
头文件 <boost/signals2/shared_connection_block.hpp>
头文件 <boost/signals2/signal.hpp>
头文件 <boost/signals2/signal_base.hpp>
头文件 <boost/signals2/signal_type.hpp>
头文件 <boost/signals2/slot.hpp>
头文件 <boost/signals2/slot_base.hpp>
头文件 <boost/signals2/trackable.hpp>
线程安全
简介
信号和组合器
连接和其他类
常见问题解答
设计原理
用户级连接管理
自动连接管理
optional_last_value 作为默认组合器
组合器接口
连接接口:+= 运算符
Signals2 互斥锁类
与其他信号/槽实现的比较
Signals2 API 更改
从 Boost.Signals 移植到 Boost.Signals2
Signals2 API 开发
测试套件
验收测试

简介

Boost.Signals2 库是托管信号和槽系统的实现。信号表示具有多个目标的callback,在类似的系统中也称为发布者或事件。信号连接到一组槽,这些槽是回调接收器(也称为事件目标或订阅者),当信号“发出”时,将调用这些槽。

信号和槽是托管的,因为信号和槽(或更准确地说,作为槽的一部分出现的对象)可以跟踪连接,并且能够在信号/槽连接被销毁时自动断开连接。这使得用户可以在建立信号/槽连接时,无需花费大量精力来管理这些连接的生命周期,以及所有相关对象的生命周期。

当信号连接到多个槽时,就存在一个关于槽的返回值与信号的返回值之间关系的问题。Boost.Signals2 允许用户指定组合多个返回值的方式。

Signals2

本文档描述了原始 Boost.Signals 库的线程安全变体。为了支持线程安全,接口进行了一些更改,主要是在自动连接管理方面。此实现由 Frank Mori Hess 编写。感谢 Timmo Stange、Peter Dimov 和 Tony Van Eerd 提供的想法和反馈,以及 Douglas Gregor 提供的 Boost.Signals 原始版本,此工作基于该版本。


PrevUpHomeNext