Boost C++ 库

...目前世界上评价最高、设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

第 33 章 Boost.Signals2 - Boost C++ 函数库
PrevUpHomeNext

第 33 章 Boost.Signals2

Douglas Gregor

Frank Mori Hess

根据 Boost Software License, Version 1.0 分发。(请参阅随附文件 LICENSE_1_0.txt 或访问 https://boost.ac.cn/LICENSE_1_0.txt 复制)

引言

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

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

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

Signals2

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


PrevUpHomeNext