1 | <html> |
---|
2 | <head> |
---|
3 | <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
---|
4 | <title>Chapter 12. Boost.Signals</title> |
---|
5 | <link rel="stylesheet" href="boostbook.css" type="text/css"> |
---|
6 | <meta name="generator" content="DocBook XSL Stylesheets V1.68.1"> |
---|
7 | <link rel="start" href="index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> |
---|
8 | <link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries (BoostBook Subset)"> |
---|
9 | <link rel="prev" href="ref/ack.html" title="Acknowledgements"> |
---|
10 | <link rel="next" href="signals/tutorial.html" title="Tutorial"> |
---|
11 | </head> |
---|
12 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
---|
13 | <table cellpadding="2" width="100%"> |
---|
14 | <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td> |
---|
15 | <td align="center"><a href="../../index.htm">Home</a></td> |
---|
16 | <td align="center"><a href="../../libs/libraries.htm">Libraries</a></td> |
---|
17 | <td align="center"><a href="../../people/people.htm">People</a></td> |
---|
18 | <td align="center"><a href="../../more/faq.htm">FAQ</a></td> |
---|
19 | <td align="center"><a href="../../more/index.htm">More</a></td> |
---|
20 | </table> |
---|
21 | <hr> |
---|
22 | <div class="spirit-nav"> |
---|
23 | <a accesskey="p" href="ref/ack.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="signals/tutorial.html"><img src="images/next.png" alt="Next"></a> |
---|
24 | </div> |
---|
25 | <div class="chapter" lang="en"> |
---|
26 | <div class="titlepage"><div> |
---|
27 | <div><h2 class="title"> |
---|
28 | <a name="signals"></a>Chapter 12. Boost.Signals</h2></div> |
---|
29 | <div><div class="author"><h3 class="author"> |
---|
30 | <span class="firstname">Douglas</span> <span class="surname">Gregor</span> |
---|
31 | </h3></div></div> |
---|
32 | <div><p class="copyright">Copyright © 2001-2004 Douglas Gregor</p></div> |
---|
33 | <div><div class="legalnotice"> |
---|
34 | <a name="id1625852"></a><p>Use, modification and distribution is subject to the Boost |
---|
35 | Software License, Version 1.0. (See accompanying file |
---|
36 | <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p> |
---|
37 | </div></div> |
---|
38 | </div></div> |
---|
39 | <div class="toc"> |
---|
40 | <p><b>Table of Contents</b></p> |
---|
41 | <dl> |
---|
42 | <dt><span class="section"><a href="signals.html#id1625877">Introduction</a></span></dt> |
---|
43 | <dt><span class="section"><a href="signals/tutorial.html">Tutorial</a></span></dt> |
---|
44 | <dd><dl> |
---|
45 | <dt><span class="section"><a href="signals/tutorial.html#id1625926">How to Read this Tutorial</a></span></dt> |
---|
46 | <dt><span class="section"><a href="signals/tutorial.html#id1625989">Compatibility Note</a></span></dt> |
---|
47 | <dt><span class="section"><a href="signals/tutorial.html#id1626102">Hello, World! (Beginner)</a></span></dt> |
---|
48 | <dt><span class="section"><a href="signals/tutorial.html#id1626257">Calling multiple slots</a></span></dt> |
---|
49 | <dt><span class="section"><a href="signals/tutorial.html#id1626670">Passing values to and from slots</a></span></dt> |
---|
50 | <dt><span class="section"><a href="signals/tutorial.html#id1627585">Connection Management</a></span></dt> |
---|
51 | <dt><span class="section"><a href="signals/tutorial.html#id1628358">Example: Document-View</a></span></dt> |
---|
52 | <dt><span class="section"><a href="signals/tutorial.html#id1628486">Linking against the Signals library</a></span></dt> |
---|
53 | </dl></dd> |
---|
54 | <dt><span class="section"><a href="signals/reference.html">Reference</a></span></dt> |
---|
55 | <dd><dl> |
---|
56 | <dt><span class="section"><a href="signals/reference.html#header.boost.signal.hpp">Header <boost/signal.hpp></a></span></dt> |
---|
57 | <dt><span class="section"><a href="signals/reference.html#header.boost.signals.slot.hpp">Header <boost/signals/slot.hpp></a></span></dt> |
---|
58 | <dt><span class="section"><a href="signals/reference.html#header.boost.signals.trackable.hpp">Header <boost/signals/trackable.hpp></a></span></dt> |
---|
59 | <dt><span class="section"><a href="signals/reference.html#header.boost.signals.connection.hpp">Header <boost/signals/connection.hpp></a></span></dt> |
---|
60 | <dt><span class="section"><a href="signals/reference.html#header.boost.visit_each.hpp">Header <boost/visit_each.hpp></a></span></dt> |
---|
61 | <dt><span class="section"><a href="signals/reference.html#header.boost.last_value.hpp">Header <boost/last_value.hpp></a></span></dt> |
---|
62 | </dl></dd> |
---|
63 | <dt><span class="section"><a href="signals/s04.html">Frequently Asked Questions</a></span></dt> |
---|
64 | <dt><span class="section"><a href="signals/s05.html">Design Overview</a></span></dt> |
---|
65 | <dd><dl> |
---|
66 | <dt><span class="section"><a href="signals/s05.html#id1633905">Type Erasure</a></span></dt> |
---|
67 | <dt><span class="section"><a href="signals/s05.html#id1633975"><code class="computeroutput">connection</code> class</a></span></dt> |
---|
68 | <dt><span class="section"><a href="signals/s05.html#id1634092">Slot Call Iterator</a></span></dt> |
---|
69 | <dt><span class="section"><a href="signals/s05.html#id1634290"><code class="computeroutput">visit_each</code> function template</a></span></dt> |
---|
70 | </dl></dd> |
---|
71 | <dt><span class="section"><a href="signals/s06.html">Design Rationale</a></span></dt> |
---|
72 | <dd><dl> |
---|
73 | <dt><span class="section"><a href="signals/s06.html#id1634446">Choice of Slot Definitions</a></span></dt> |
---|
74 | <dt><span class="section"><a href="signals/s06.html#id1634530">User-level Connection Management</a></span></dt> |
---|
75 | <dt><span class="section"><a href="signals/s06.html#id1634696">Combiner Interface</a></span></dt> |
---|
76 | <dt><span class="section"><a href="signals/s06.html#id1634776">Connection Interfaces: += operator</a></span></dt> |
---|
77 | <dt><span class="section"><a href="signals/s06.html#id1634947"><code class="computeroutput">trackable</code> rationale</a></span></dt> |
---|
78 | <dt><span class="section"><a href="signals/s06.html#id1635130">Comparison with other Signal/Slot implementations</a></span></dt> |
---|
79 | </dl></dd> |
---|
80 | <dt><span class="section"><a href="signals/tests.html">Testsuite</a></span></dt> |
---|
81 | <dd><dl><dt><span class="section"><a href="signals/tests.html#id1635252">Acceptance tests</a></span></dt></dl></dd> |
---|
82 | </dl> |
---|
83 | </div> |
---|
84 | <div class="section" lang="en"> |
---|
85 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
---|
86 | <a name="id1625877"></a>Introduction</h2></div></div></div> |
---|
87 | <p>The Boost.Signals library is an implementation of a managed |
---|
88 | signals and slots system. Signals represent callbacks with multiple |
---|
89 | targets, and are also called publishers or events in similar |
---|
90 | systems. Signals are connected to some set of slots, which are |
---|
91 | callback receivers (also called event targets or subscribers), which |
---|
92 | are called when the signal is "emitted."</p> |
---|
93 | <p>Signals and slots are managed, in that signals and slots (or, |
---|
94 | more properly, objects that occur as part of the slots) track all |
---|
95 | connections and are capable of automatically disconnecting signal/slot |
---|
96 | connections when either is destroyed. This enables the user to make |
---|
97 | signal/slot connections without expending a great effort to manage the |
---|
98 | lifetimes of those connections with regard to the lifetimes of all |
---|
99 | objects involved.</p> |
---|
100 | <p>When signals are connected to multiple slots, there is a |
---|
101 | question regarding the relationship between the return values of the |
---|
102 | slots and the return value of the signals. Boost.Signals allows the |
---|
103 | user to specify the manner in which multiple return values are |
---|
104 | combined.</p> |
---|
105 | </div> |
---|
106 | </div> |
---|
107 | <table width="100%"><tr> |
---|
108 | <td align="left"><small><p>Last revised: May 04, 2004 at 18:17:22 GMT</p></small></td> |
---|
109 | <td align="right"><small></small></td> |
---|
110 | </tr></table> |
---|
111 | <hr> |
---|
112 | <div class="spirit-nav"> |
---|
113 | <a accesskey="p" href="ref/ack.html"><img src="images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.html"><img src="images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a><a accesskey="n" href="signals/tutorial.html"><img src="images/next.png" alt="Next"></a> |
---|
114 | </div> |
---|
115 | </body> |
---|
116 | </html> |
---|