• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>Class scoped_connection</title>
6<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9<link rel="up" href="../../signals2/reference.html#header.boost.signals2.connection_hpp" title="Header &lt;boost/signals2/connection.hpp&gt;">
10<link rel="prev" href="connection.html" title="Class connection">
11<link rel="next" href="deconstruct.html" title="Function deconstruct">
12</head>
13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14<table cellpadding="2" width="100%"><tr>
15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
16<td align="center"><a href="../../../../index.html">Home</a></td>
17<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20<td align="center"><a href="../../../../more/index.htm">More</a></td>
21</tr></table>
22<hr>
23<div class="spirit-nav">
24<a accesskey="p" href="connection.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.connection_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="deconstruct.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
25</div>
26<div class="refentry">
27<a name="boost.signals2.scoped_connection"></a><div class="titlepage"></div>
28<div class="refnamediv">
29<h2><span class="refentrytitle">Class scoped_connection</span></h2>
30<p>boost::signals2::scoped_connection — Limits a signal-slot connection lifetime to a particular scope.</p>
31</div>
32<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
33<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../signals2/reference.html#header.boost.signals2.connection_hpp" title="Header &lt;boost/signals2/connection.hpp&gt;">boost/signals2/connection.hpp</a>&gt;
34
35</span>
36<span class="keyword">class</span> <a class="link" href="scoped_connection.html" title="Class scoped_connection">scoped_connection</a> <span class="special">:</span> <span class="keyword">public</span> <a class="link" href="connection.html" title="Class connection">connection</a> <span class="special">{</span>
37<span class="keyword">public</span><span class="special">:</span>
38  <span class="comment">// <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3-bbconstruct-copy-destruct">construct/copy/destruct</a></span>
39  <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_1-bb"><span class="identifier">scoped_connection</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
40  <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_2-bb"><span class="identifier">scoped_connection</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
41  <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_3-bb"><span class="identifier">scoped_connection</span></a><span class="special">(</span><a class="link" href="scoped_connection.html" title="Class scoped_connection">scoped_connection</a><span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
42  <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_4-bb"><span class="identifier">scoped_connection</span></a><span class="special">(</span><a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
43  scoped_connection&amp; <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_5-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
44  scoped_connection&amp; <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_6-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="scoped_connection.html" title="Class scoped_connection">scoped_connection</a><span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
45  scoped_connection&amp; <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_7-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
46  <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_8-bb"><span class="special">~</span><span class="identifier">scoped_connection</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
47
48  <span class="comment">// <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_9-bb">public methods</a></span>
49  <a class="link" href="connection.html" title="Class connection">connection</a> <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_9_1-bb"><span class="identifier">release</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
50<span class="keyword">private</span><span class="special">:</span>
51  <span class="comment">// <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_4-bbconstruct-copy-destruct">construct/copy/destruct</a></span>
52  <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_4_1-bb"><span class="identifier">scoped_connection</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="scoped_connection.html" title="Class scoped_connection">scoped_connection</a><span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
53  scoped_connection&amp; <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_4_2-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="scoped_connection.html" title="Class scoped_connection">scoped_connection</a><span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
54<span class="special">}</span><span class="special">;</span></pre></div>
55<div class="refsect1">
56<a name="id-1.3.36.6.3.4.4"></a><h2>Description</h2>
57<p>A <a class="link" href="connection.html" title="Class connection">connection</a> which automatically disconnects on destruction.</p>
58<div class="section">
59<div class="titlepage"><div><div><h6 class="title">
60<a name="id-1.3.36.6.3.4.4.3"></a>Thread Safety</h6></div></div></div>
61<p>The methods of the <code class="computeroutput">scoped_connection</code> class (including those
62              inherited from its base <code class="computeroutput">connection</code> class) are thread-safe with the exception
63              of <a class="link" href="connection.html#id-1_3_36_6_2_1_1_1_10_1-bb">signals2::connection::swap</a>, <a class="link" href="scoped_connection.html#id-1_3_36_6_2_1_1_2_3_9_1-bb">release</a>, and
64              the assignment operator.  A <code class="computeroutput">scoped_connection</code> object
65              should not be accessed concurrently when any of these operations is in progress.
66              However, it is always safe to access a different <code class="computeroutput">connection</code> object
67              in another thread, even if it references the same underlying signal-slot connection.
68            </p>
69</div>
70<div class="refsect2">
71<a name="id-1.3.36.6.3.4.4.4"></a><h3>
72<a name="id-1_3_36_6_2_1_1_2_3-bbconstruct-copy-destruct"></a><code class="computeroutput">scoped_connection</code> public construct/copy/destruct</h3>
73<div class="orderedlist"><ol class="orderedlist" type="1">
74<li class="listitem">
75<pre class="literallayout"><a name="id-1_3_36_6_2_1_1_2_3_1-bb"></a><span class="identifier">scoped_connection</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
76<p>Default constructs an empty scoped_connection.</p>
77<div class="variablelist"><table border="0" class="variablelist compact">
78<colgroup>
79<col align="left" valign="top">
80<col>
81</colgroup>
82<tbody>
83<tr>
84<td><p><span class="term">Postconditions:</span></p></td>
85<td><p><code class="computeroutput"><a class="link" href="connection.html#id-1_3_36_6_2_1_1_1_8_2-bb">connected</a>() == false </code></p></td>
86</tr>
87<tr>
88<td><p><span class="term">Throws:</span></p></td>
89<td><p>Will not throw.</p></td>
90</tr>
91</tbody>
92</table></div>
93</li>
94<li class="listitem">
95<pre class="literallayout"><a name="id-1_3_36_6_2_1_1_2_3_2-bb"></a><span class="identifier">scoped_connection</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&amp;</span> other<span class="special">)</span><span class="special">;</span></pre>
96<div class="variablelist"><table border="0" class="variablelist compact">
97<colgroup>
98<col align="left" valign="top">
99<col>
100</colgroup>
101<tbody>
102<tr>
103<td><p><span class="term">Effects:</span></p></td>
104<td><p><code class="computeroutput">this</code> references
105              the connection referenced by
106              <code class="computeroutput">other</code>.</p></td>
107</tr>
108<tr>
109<td><p><span class="term">Postconditions:</span></p></td>
110<td><p><code class="computeroutput"><a class="link" href="connection.html#id-1_3_36_6_2_1_1_1_8_2-bb">connected</a>() == other.connected()</code></p></td>
111</tr>
112<tr>
113<td><p><span class="term">Throws:</span></p></td>
114<td><p>Will not throw.</p></td>
115</tr>
116</tbody>
117</table></div>
118</li>
119<li class="listitem">
120<pre class="literallayout"><a name="id-1_3_36_6_2_1_1_2_3_3-bb"></a><span class="identifier">scoped_connection</span><span class="special">(</span><a class="link" href="scoped_connection.html" title="Class scoped_connection">scoped_connection</a><span class="special">&amp;&amp;</span> other<span class="special">)</span><span class="special">;</span></pre>
121<p>Move constructor.</p>
122<div class="variablelist"><table border="0" class="variablelist compact">
123<colgroup>
124<col align="left" valign="top">
125<col>
126</colgroup>
127<tbody>
128<tr>
129<td><p><span class="term">Effects:</span></p></td>
130<td><p><code class="computeroutput">this</code> references
131              the connection formerly referenced by
132              <code class="computeroutput">other</code>.  The moved-from <code class="computeroutput">other</code>
133              no longer references any connection.</p></td>
134</tr>
135<tr>
136<td><p><span class="term">Throws:</span></p></td>
137<td><p>Will not throw.</p></td>
138</tr>
139</tbody>
140</table></div>
141</li>
142<li class="listitem">
143<pre class="literallayout"><a name="id-1_3_36_6_2_1_1_2_3_4-bb"></a><span class="identifier">scoped_connection</span><span class="special">(</span><a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&amp;&amp;</span> other<span class="special">)</span><span class="special">;</span></pre>
144<p>Move constructor.</p>
145<div class="variablelist"><table border="0" class="variablelist compact">
146<colgroup>
147<col align="left" valign="top">
148<col>
149</colgroup>
150<tbody>
151<tr>
152<td><p><span class="term">Effects:</span></p></td>
153<td><p><code class="computeroutput">this</code> references
154              the connection formerly referenced by
155              <code class="computeroutput">other</code>.  The moved-from <code class="computeroutput">other</code>
156              no longer references any connection.</p></td>
157</tr>
158<tr>
159<td><p><span class="term">Throws:</span></p></td>
160<td><p>Will not throw.</p></td>
161</tr>
162</tbody>
163</table></div>
164</li>
165<li class="listitem">
166<pre class="literallayout">scoped_connection&amp; <a name="id-1_3_36_6_2_1_1_2_3_5-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&amp;</span> rhs<span class="special">)</span><span class="special">;</span></pre>
167<p>Copy assignment from unscoped connection.</p>
168<div class="variablelist"><table border="0" class="variablelist compact">
169<colgroup>
170<col align="left" valign="top">
171<col>
172</colgroup>
173<tbody>
174<tr>
175<td><p><span class="term">Effects:</span></p></td>
176<td><p><code class="computeroutput">this</code> references
177            the connection referenced by
178            <code class="computeroutput">rhs</code>.  If <code class="computeroutput">this</code> already references another
179                    connection, the old connection will be disconnected first.</p></td>
180</tr>
181<tr>
182<td><p><span class="term">Postconditions:</span></p></td>
183<td><p><code class="computeroutput"><a class="link" href="connection.html#id-1_3_36_6_2_1_1_1_8_2-bb">connected</a>() == other.connected()</code></p></td>
184</tr>
185<tr>
186<td><p><span class="term">Throws:</span></p></td>
187<td><p>Will not throw.</p></td>
188</tr>
189</tbody>
190</table></div>
191</li>
192<li class="listitem">
193<pre class="literallayout">scoped_connection&amp; <a name="id-1_3_36_6_2_1_1_2_3_6-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="scoped_connection.html" title="Class scoped_connection">scoped_connection</a><span class="special">&amp;&amp;</span> rhs<span class="special">)</span><span class="special">;</span></pre>
194<p>Move assignment.</p>
195<div class="variablelist"><table border="0" class="variablelist compact">
196<colgroup>
197<col align="left" valign="top">
198<col>
199</colgroup>
200<tbody>
201<tr>
202<td><p><span class="term">Effects:</span></p></td>
203<td><p><code class="computeroutput">this</code> references
204            the connection formerly referenced by
205            <code class="computeroutput">rhs</code>.  The moved-from <code class="computeroutput">rhs</code>
206            no longer references any connection.  If <code class="computeroutput">this</code> already references another
207                    connection, the old connection will be disconnected first.</p></td>
208</tr>
209<tr>
210<td><p><span class="term">Throws:</span></p></td>
211<td><p>Will not throw.</p></td>
212</tr>
213</tbody>
214</table></div>
215</li>
216<li class="listitem">
217<pre class="literallayout">scoped_connection&amp; <a name="id-1_3_36_6_2_1_1_2_3_7-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&amp;&amp;</span> rhs<span class="special">)</span><span class="special">;</span></pre>
218<p>Move assignment.</p>
219<div class="variablelist"><table border="0" class="variablelist compact">
220<colgroup>
221<col align="left" valign="top">
222<col>
223</colgroup>
224<tbody>
225<tr>
226<td><p><span class="term">Effects:</span></p></td>
227<td><p><code class="computeroutput">this</code> references
228            the connection formerly referenced by
229            <code class="computeroutput">rhs</code>.  The moved-from <code class="computeroutput">rhs</code>
230            no longer references any connection.  If <code class="computeroutput">this</code> already references another
231                    connection, the old connection will be disconnected first.</p></td>
232</tr>
233<tr>
234<td><p><span class="term">Throws:</span></p></td>
235<td><p>Will not throw.</p></td>
236</tr>
237</tbody>
238</table></div>
239</li>
240<li class="listitem">
241<pre class="literallayout"><a name="id-1_3_36_6_2_1_1_2_3_8-bb"></a><span class="special">~</span><span class="identifier">scoped_connection</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
242<div class="variablelist"><table border="0" class="variablelist compact">
243<colgroup>
244<col align="left" valign="top">
245<col>
246</colgroup>
247<tbody><tr>
248<td><p><span class="term">Effects:</span></p></td>
249<td><p>If
250            <code class="computeroutput">this-&gt;<a class="link" href="connection.html#id-1_3_36_6_2_1_1_1_8_2-bb">connected</a>()</code>,
251            disconnects the signal-slot connection.</p></td>
252</tr></tbody>
253</table></div>
254</li>
255</ol></div>
256</div>
257<div class="refsect2">
258<a name="id-1.3.36.6.3.4.4.5"></a><h3>
259<a name="id-1_3_36_6_2_1_1_2_3_9-bb"></a><code class="computeroutput">scoped_connection</code> public methods</h3>
260<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
261<pre class="literallayout"><a class="link" href="connection.html" title="Class connection">connection</a> <a name="id-1_3_36_6_2_1_1_2_3_9_1-bb"></a><span class="identifier">release</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
262<div class="variablelist"><table border="0" class="variablelist compact">
263<colgroup>
264<col align="left" valign="top">
265<col>
266</colgroup>
267<tbody>
268<tr>
269<td><p><span class="term">Effects:</span></p></td>
270<td><p>
271                  Releases the connection so it will not be disconnected by the <code class="computeroutput">scoped_connection</code>
272                  when it is destroyed or reassigned.  The <code class="computeroutput">scoped_connection</code> is reset to
273                  the NULL connection after this call completes.
274                </p></td>
275</tr>
276<tr>
277<td><p><span class="term">Postconditions:</span></p></td>
278<td><p><code class="computeroutput"><a class="link" href="connection.html#id-1_3_36_6_2_1_1_1_8_2-bb">connected</a>() == false</code></p></td>
279</tr>
280<tr>
281<td><p><span class="term">Returns:</span></p></td>
282<td><p>A <a class="link" href="connection.html" title="Class connection">connection</a> object referencing the connection which was
283                  released by the <code class="computeroutput">scoped_connection</code>.
284                </p></td>
285</tr>
286</tbody>
287</table></div>
288</li></ol></div>
289</div>
290<div class="refsect2">
291<a name="id-1.3.36.6.3.4.4.6"></a><h3>
292<a name="id-1_3_36_6_2_1_1_2_4-bbconstruct-copy-destruct"></a><code class="computeroutput">scoped_connection</code> private construct/copy/destruct</h3>
293<div class="orderedlist"><ol class="orderedlist" type="1">
294<li class="listitem">
295<pre class="literallayout"><a name="id-1_3_36_6_2_1_1_2_4_1-bb"></a><span class="identifier">scoped_connection</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="scoped_connection.html" title="Class scoped_connection">scoped_connection</a><span class="special">&amp;</span> other<span class="special">)</span><span class="special">;</span></pre>
296<p>The scoped_connection class is not copyable.  It may only be copy constructed from an unscoped
297                <code class="computeroutput"><a class="link" href="connection.html" title="Class connection">connection</a></code> object.</p>
298</li>
299<li class="listitem">
300<pre class="literallayout">scoped_connection&amp; <a name="id-1_3_36_6_2_1_1_2_4_2-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="scoped_connection.html" title="Class scoped_connection">scoped_connection</a><span class="special">&amp;</span> rhs<span class="special">)</span><span class="special">;</span></pre>
301<p>The scoped_connection class is not copyable.  It may only be copy assigned from an unscoped
302                <code class="computeroutput"><a class="link" href="connection.html" title="Class connection">connection</a></code> object.</p>
303</li>
304</ol></div>
305</div>
306</div>
307</div>
308<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
309<td align="left"></td>
310<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost
311    Software License, Version 1.0. (See accompanying file
312    <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>
313</div></td>
314</tr></table>
315<hr>
316<div class="spirit-nav">
317<a accesskey="p" href="connection.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.connection_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="deconstruct.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
318</div>
319</body>
320</html>
321