diff options
Diffstat (limited to 'doc/html/boost/signals2')
29 files changed, 3550 insertions, 0 deletions
diff --git a/doc/html/boost/signals2/connection.html b/doc/html/boost/signals2/connection.html new file mode 100755 index 0000000000..50212ef520 --- /dev/null +++ b/doc/html/boost/signals2/connection.html @@ -0,0 +1,334 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class connection</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.connection_hpp" title="Header <boost/signals2/connection.hpp>"> +<link rel="prev" href="../../signals2/reference.html" title="Reference"> +<link rel="next" href="scoped_connection.html" title="Class scoped_connection"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../signals2/reference.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="scoped_connection.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.connection"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class connection</span></h2> +<p>boost::signals2::connection — Query/disconnect a signal-slot connection.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.connection_hpp" title="Header <boost/signals2/connection.hpp>">boost/signals2/connection.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="connection.html" title="Class connection">connection</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// <a class="link" href="connection.html#boost.signals2.connectionconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="connection.html#id1379105-bb"><span class="identifier">connection</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="connection.html#id1404076-bb"><span class="identifier">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">&</span><span class="special">)</span><span class="special">;</span> + connection& <a class="link" href="connection.html#id823540-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">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="connection.html#id821799-bb">connection management</a></span> + <span class="keyword">void</span> <a class="link" href="connection.html#id829021-bb"><span class="identifier">disconnect</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="connection.html#id1289781-bb"><span class="identifier">connected</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="connection.html#id1140285-bb">blocking</a></span> + <span class="keyword">bool</span> <a class="link" href="connection.html#id1284179-bb"><span class="identifier">blocked</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="connection.html#id1382266-bb">modifiers</a></span> + <span class="keyword">void</span> <a class="link" href="connection.html#id1402738-bb"><span class="identifier">swap</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">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="connection.html#id807372-bb">comparisons</a></span> + <span class="keyword">bool</span> <a class="link" href="connection.html#id1403968-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">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="connection.html#id1360133-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">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="connection.html#id1357227-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">&</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span> + +<span class="comment">// <a class="link" href="connection.html#id1383580-bb">specialized algorithms</a></span> +<span class="keyword">void</span> <a class="link" href="connection.html#boost.signals2.connection.swap_id1383584"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&</span><span class="special">,</span> <a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&</span><span class="special">)</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3154263"></a><h2>Description</h2> +<p>The <a class="link" href="connection.html" title="Class connection">signals2::connection</a> class represents + a connection between a Signal and a Slot. It is a + lightweight object that has the ability to query whether the + signal and slot are currently connected, and to disconnect + the signal and slot. It is always safe to query or + disconnect a connection.</p> +<div class="section"> +<div class="titlepage"><div><div><h6 class="title"> +<a name="id3154283"></a>Thread Safety</h6></div></div></div> +<p>The methods of the <code class="computeroutput">connection</code> class are thread-safe with the exception + of <a class="link" href="connection.html#id1402738-bb">swap</a> and the assignment operator. A <code class="computeroutput">connection</code> object + should not be accessed concurrently when either of these operations is in progress. + However, it is always safe to access a different <code class="computeroutput">connection</code> object + in another thread, even if the two <code class="computeroutput">connection</code> objects are copies + of each other which refer to the same underlying connection. + </p> +</div> +<div class="refsect2"> +<a name="id3154330"></a><h3> +<a name="boost.signals2.connectionconstruct-copy-destruct"></a><code class="computeroutput">connection</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="id1379105-bb"></a><span class="identifier">connection</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Sets the currently represented connection to the + NULL connection.</p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput">!this-><a class="link" href="connection.html#id1289781-bb">connected</a>()</code>.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id1404076-bb"></a><span class="identifier">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">&</span> other<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p><code class="computeroutput">this</code> references + the connection referenced by + <code class="computeroutput">other</code>.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout">connection& <a name="id823540-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">&</span> other<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p><code class="computeroutput">this</code> references + the connection referenced by + <code class="computeroutput">other</code>.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3154577"></a><h3> +<a name="id821799-bb"></a><code class="computeroutput">connection</code> connection management</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="id829021-bb"></a><span class="identifier">disconnect</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>If + <code class="computeroutput">this-><a class="link" href="connection.html#id1289781-bb">connected</a>()</code>, + disconnects the signal and slot referenced by this; + otherwise, this operation is a no-op.</p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput">!this-><a class="link" href="connection.html#id1289781-bb">connected</a>()</code>.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id1289781-bb"></a><span class="identifier">connected</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">true</code> if this + references a non-NULL connection that is still active + (connected), and <code class="computeroutput">false</code> + otherwise.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3154749"></a><h3> +<a name="id1140285-bb"></a><code class="computeroutput">connection</code> blocking</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id1284179-bb"></a><span class="identifier">blocked</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<p> + Queries if the connection is blocked. A connection may be blocked by creating a + <code class="computeroutput"><a class="link" href="shared_connection_block.html" title="Class shared_connection_block">boost::signals2::shared_connection_block</a></code> object. + </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">true</code> if the associated slot is either disconnected or blocked, <code class="computeroutput">false</code> otherwise.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="id3154855"></a><h3> +<a name="id1382266-bb"></a><code class="computeroutput">connection</code> modifiers</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="id1402738-bb"></a><span class="identifier">swap</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Swaps the connections referenced in + <code class="computeroutput">this</code> and + <code class="computeroutput">other</code>.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="id3154956"></a><h3> +<a name="id807372-bb"></a><code class="computeroutput">connection</code> comparisons</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id1403968-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">&</span> other<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">true</code> if + <code class="computeroutput">this</code> and + <code class="computeroutput">other</code> reference the same + connection or both reference the NULL connection, and + <code class="computeroutput">false</code> + otherwise.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id1360133-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">&</span> other<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">!(*this == other)</code></p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id1357227-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">&</span> other<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">true</code> if the + connection referenced by + <code class="computeroutput">this</code> precedes the + connection referenced by + <code class="computeroutput">other</code> based on some + unspecified ordering, and + <code class="computeroutput">false</code> + otherwise.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3155271"></a><h3> +<a name="id1383580-bb"></a><code class="computeroutput">connection</code> specialized algorithms</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="boost.signals2.connection.swap_id1383584"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&</span> x<span class="special">,</span> <a class="link" href="connection.html" title="Class connection">connection</a><span class="special">&</span> y<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p><code class="computeroutput">x.swap(y)</code></p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../../signals2/reference.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="scoped_connection.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/deconstruct.html b/doc/html/boost/signals2/deconstruct.html new file mode 100755 index 0000000000..ceb14d7f00 --- /dev/null +++ b/doc/html/boost/signals2/deconstruct.html @@ -0,0 +1,136 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Function deconstruct</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.deconstruct_hpp" title="Header <boost/signals2/deconstruct.hpp>"> +<link rel="prev" href="scoped_connection.html" title="Class scoped_connection"> +<link rel="next" href="deconstruct_access.html" title="Class deconstruct_access"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="scoped_connection.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.deconstruct_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_access.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.deconstruct"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Function deconstruct</span></h2> +<p>boost::signals2::deconstruct — Create a <code class="computeroutput">shared_ptr</code> with support for post-constructors and pre-destructors.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.deconstruct_hpp" title="Header <boost/signals2/deconstruct.hpp>">boost/signals2/deconstruct.hpp</a>> + +</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <a class="link" href="postconstructor_invoker.html" title="Class postconstructor_invoker">postconstructor_invoker</a><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">deconstruct</span><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> A1<span class="special">></span> + <a class="link" href="postconstructor_invoker.html" title="Class postconstructor_invoker">postconstructor_invoker</a><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">deconstruct</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A1</span> <span class="special">&</span> arg1<span class="special">)</span><span class="special">;</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> A1<span class="special">,</span> <span class="keyword">typename</span> A2<span class="special">></span> + <a class="link" href="postconstructor_invoker.html" title="Class postconstructor_invoker">postconstructor_invoker</a><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">deconstruct</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A1</span> <span class="special">&</span> arg1<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">A2</span> <span class="special">&</span> arg2<span class="special">)</span><span class="special">;</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> A1<span class="special">,</span> <span class="keyword">typename</span> A2, ...<span class="special">,</span> <span class="keyword">typename</span> AN<span class="special">></span> + <a class="link" href="postconstructor_invoker.html" title="Class postconstructor_invoker">postconstructor_invoker</a><span class="special"><</span><span class="identifier">T</span><span class="special">></span> + <span class="identifier">deconstruct</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A1</span> <span class="special">&</span> arg1<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">A2</span> <span class="special">&</span> arg2<span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">AN</span> <span class="special">&</span> argN<span class="special">)</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3157488"></a><h2>Description</h2> +<p>Creates an object and its owning <code class="computeroutput">shared_ptr<T></code> + (wrapped inside a <code class="computeroutput"><a class="link" href="postconstructor_invoker.html" title="Class postconstructor_invoker">postconstructor_invoker</a></code>) + using only a single allocation, + in a manner similar + to that of <code class="computeroutput">boost::make_shared()</code>. In addition, <code class="computeroutput">deconstruct</code> + supports postconstructors and predestructors. The returned + <code class="computeroutput">shared_ptr</code> is wrapped inside a <code class="computeroutput"><a class="link" href="postconstructor_invoker.html" title="Class postconstructor_invoker">postconstructor_invoker</a></code> + in order to provide the user with an opportunity to pass arguments to a postconstructor, + while insuring the postconstructor is run before the wrapped + <code class="computeroutput">shared_ptr</code> is accessible. + </p> +<p> + In order to use <code class="computeroutput">deconstruct</code> you must define a postconstructor for your class. + More specifically, you must define + an <code class="computeroutput">adl_postconstruct</code> function which can be found via argument-dependent + lookup. Typically, this means defining an <code class="computeroutput">adl_postconstruct</code> function + in the same namespace as its associated class. See the reference for + <code class="computeroutput"><a class="link" href="postconstructor_invoker.html" title="Class postconstructor_invoker">postconstructor_invoker</a></code> + for a specification of what arguments are passed to the <code class="computeroutput">adl_postconstruct</code> + call. + </p> +<p> + Optionally, you may define a predestructor for your class. This is done by + defining an <code class="computeroutput">adl_predestruct</code> function which may be found + by argument-dependent lookup. The deleter of the <code class="computeroutput">shared_ptr</code> + created by <code class="computeroutput">deconstruct</code> will make an unqualified call to + <code class="computeroutput">adl_predestruct</code> with a single + argument: a pointer to the object which is about to be deleted. + As a convenience, the pointer will always be cast to point to a non-const type + before being passed to <code class="computeroutput">adl_predestruct</code>. + If no user-defined <code class="computeroutput">adl_predestruct</code> function is found via + argument-dependent lookup, a default function (which does nothing) will + be used. After <code class="computeroutput">adl_predestruct</code> is called, the deleter + will delete the object with + <code class="computeroutput">checked_delete</code>. + </p> +<p> + Any arguments passed to a + <code class="computeroutput">deconstruct()</code> call are forwarded to the matching constructor of the + template type + <code class="computeroutput">T</code>. Arguments may also be passed to the class' associated + <code class="computeroutput">adl_postconstruct</code> function by using the + <code class="computeroutput"><a class="link" href="postconstructor_invoker.html#id791253-bb">postconstructor_invoker::postconstruct()</a></code> methods. + </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Notes:</span></p></td> +<td> +<p>If your compiler supports the C++0x features of rvalue references + and variadic templates, then <code class="computeroutput">deconstruct</code> will perform perfect + forwarding of arguments to the <code class="computeroutput">T</code> constructor, using + a prototype of: + </p> +<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span><span class="special">...</span> <span class="identifier">Args</span> <span class="special">></span> <span class="identifier">postconstructor_invoker</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <span class="identifier">deconstruct</span><span class="special">(</span> <span class="identifier">Args</span> <span class="special">&&</span> <span class="special">...</span> <span class="identifier">args</span> <span class="special">)</span><span class="special">;</span></pre> +<p>Otherwise, argument forwarding is performed via const references, as specified in + the synopsis. In order to pass non-const references to a constructor, you will need + to wrap them in reference wrappers using boost::ref. + </p> +<p>You may give all the <code class="computeroutput">deconstruct</code> overloads access to your class' + private and protected constructors by + declaring <a class="link" href="deconstruct_access.html" title="Class deconstruct_access">deconstruct_access</a> a friend. Using private + constructors in conjunction with <a class="link" href="deconstruct_access.html" title="Class deconstruct_access">deconstruct_access</a> + can be useful to + ensure your objects are only created by <code class="computeroutput">deconstruct</code>, and thus + their postconstructors or predestructors will always be called. + </p> +</td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A <code class="computeroutput">postconstructor_invoker<T></code> owning a newly allocated object of + type <code class="computeroutput">T</code>.</p></td> +</tr> +</tbody> +</table></div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="scoped_connection.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.deconstruct_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_access.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/deconstruct_access.html b/doc/html/boost/signals2/deconstruct_access.html new file mode 100755 index 0000000000..c6ada27c51 --- /dev/null +++ b/doc/html/boost/signals2/deconstruct_access.html @@ -0,0 +1,63 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class deconstruct_access</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.deconstruct_hpp" title="Header <boost/signals2/deconstruct.hpp>"> +<link rel="prev" href="deconstruct.html" title="Function deconstruct"> +<link rel="next" href="postconstructor_invoker.html" title="Class postconstructor_invoker"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="deconstruct.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.deconstruct_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="postconstructor_invoker.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.deconstruct_access"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class deconstruct_access</span></h2> +<p>boost::signals2::deconstruct_access — Gives <a class="link" href="deconstruct.html" title="Function deconstruct">deconstruct</a> access to private/protected constructors.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.deconstruct_hpp" title="Header <boost/signals2/deconstruct.hpp>">boost/signals2/deconstruct.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="deconstruct_access.html" title="Class deconstruct_access">deconstruct_access</a> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3157967"></a><h2>Description</h2> +<p> + Declaring <code class="computeroutput">deconstruct_access</code> a friend to your class will give the + <a class="link" href="deconstruct.html" title="Function deconstruct">deconstruct</a> factory function access to your class' private and + protected constructors. Using private + constructors in conjunction with <code class="computeroutput">deconstruct_access</code> + can be useful to + ensure postconstructible or predestructible + objects are always created + properly using <code class="computeroutput">deconstruct</code>. + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="deconstruct.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.deconstruct_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="postconstructor_invoker.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/dummy_mutex.html b/doc/html/boost/signals2/dummy_mutex.html new file mode 100755 index 0000000000..a6bebb229a --- /dev/null +++ b/doc/html/boost/signals2/dummy_mutex.html @@ -0,0 +1,78 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class dummy_mutex</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.dummy_mutex_hpp" title="Header <boost/signals2/dummy_mutex.hpp>"> +<link rel="prev" href="postconstructor_invoker.html" title="Class postconstructor_invoker"> +<link rel="next" href="last_value.html" title="Class template last_value"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="postconstructor_invoker.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.dummy_mutex_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="last_value.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.dummy_mutex"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class dummy_mutex</span></h2> +<p>boost::signals2::dummy_mutex — Fake mutex which does nothing.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.dummy_mutex_hpp" title="Header <boost/signals2/dummy_mutex.hpp>">boost/signals2/dummy_mutex.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="dummy_mutex.html" title="Class dummy_mutex">dummy_mutex</a> <span class="special">:</span> <span class="keyword">public</span> noncopyable <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="keyword">void</span> <a class="link" href="dummy_mutex.html#id1143956-bb"><span class="identifier">lock</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="dummy_mutex.html#id1286326-bb"><span class="identifier">try_lock</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="dummy_mutex.html#id1296119-bb"><span class="identifier">unlock</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3159365"></a><h2>Description</h2> +<p>You may wish to use the <code class="computeroutput">dummy_mutex</code> class for the <code class="computeroutput">Mutex</code> + template type of your signals if you are not concerned about thread safety. + This may give slightly faster + performance, since <code class="computeroutput">dummy_mutex</code> performs no actual locking. + </p> +<pre class="literallayout"><span class="keyword">void</span> <a name="id1143956-bb"></a><span class="identifier">lock</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p>No effect. + </p> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id1286326-bb"></a><span class="identifier">try_lock</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p>No effect. + </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">true</code>.</p></td> +</tr></tbody> +</table></div> +<pre class="literallayout"><span class="keyword">void</span> <a name="id1296119-bb"></a><span class="identifier">unlock</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p>No effect. + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="postconstructor_invoker.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.dummy_mutex_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="last_value.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/expired_slot.html b/doc/html/boost/signals2/expired_slot.html new file mode 100755 index 0000000000..75142340f0 --- /dev/null +++ b/doc/html/boost/signals2/expired_slot.html @@ -0,0 +1,57 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class expired_slot</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.slot_base_hpp" title="Header <boost/signals2/slot_base.hpp>"> +<link rel="prev" href="slot_base.html" title="Class slot_base"> +<link rel="next" href="trackable.html" title="Class trackable"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="slot_base.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.slot_base_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="trackable.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.expired_slot"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class expired_slot</span></h2> +<p>boost::signals2::expired_slot — Indicates at least one of a slot's tracked objects has expired.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.slot_base_hpp" title="Header <boost/signals2/slot_base.hpp>">boost/signals2/slot_base.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="expired_slot.html" title="Class expired_slot">expired_slot</a> <span class="special">:</span> <span class="keyword">public</span> bad_weak_ptr <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <a class="link" href="expired_slot.html#id781640-bb"><span class="identifier">what</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3176632"></a><h2>Description</h2>The <code class="computeroutput">expired_slot</code> exception is thrown to indicate at least one of + a slot's tracked objects has expired. + <pre class="literallayout"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <a name="id781640-bb"></a><span class="identifier">what</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="slot_base.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.slot_base_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="trackable.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/keywords/combiner_type.html b/doc/html/boost/signals2/keywords/combiner_type.html new file mode 100755 index 0000000000..d1f4939619 --- /dev/null +++ b/doc/html/boost/signals2/keywords/combiner_type.html @@ -0,0 +1,61 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template combiner_type</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>"> +<link rel="prev" href="signature_type.html" title="Class template signature_type"> +<link rel="next" href="group_type.html" title="Class template group_type"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="signature_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="group_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.keywords.combiner_type"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template combiner_type</span></h2> +<p>boost::signals2::keywords::combiner_type — A template keyword for <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a>.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>">boost/signals2/signal_type.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Combiner<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="combiner_type.html" title="Class template combiner_type">combiner_type</a> <span class="special">:</span> <span class="keyword">public</span> <span class="emphasis"><em><span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">type</span></em></span> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3170030"></a><h2>Description</h2> +<p> + This class is a template keyword which may be used to pass the wrapped <code class="computeroutput">Combiner</code> + template type to the <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a> metafunction as a named parameter. + </p> +<p> + The code for this class is generated by a calling a macro from the Boost.Parameter library: + <code class="computeroutput">BOOST_PARAMETER_TEMPLATE_KEYWORD(combiner_type)</code> + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="signature_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="group_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/keywords/extended_slot_function__id791201.html b/doc/html/boost/signals2/keywords/extended_slot_function__id791201.html new file mode 100755 index 0000000000..72710a8b9f --- /dev/null +++ b/doc/html/boost/signals2/keywords/extended_slot_function__id791201.html @@ -0,0 +1,61 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template extended_slot_function_type</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>"> +<link rel="prev" href="slot_function_type.html" title="Class template slot_function_type"> +<link rel="next" href="mutex_type.html" title="Class template mutex_type"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="slot_function_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="mutex_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.keywords.extended_slot_function__id791201"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template extended_slot_function_type</span></h2> +<p>boost::signals2::keywords::extended_slot_function_type — A template keyword for <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a>.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>">boost/signals2/signal_type.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ExtendedSlotFunction<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="extended_slot_function__id791201.html" title="Class template extended_slot_function_type">extended_slot_function_type</a> <span class="special">:</span> <span class="keyword">public</span> <span class="emphasis"><em><span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">type</span></em></span> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3170642"></a><h2>Description</h2> +<p> + This class is a template keyword which may be used to pass the wrapped <code class="computeroutput">ExtendedSlotFunction</code> + template type to the <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a> metafunction as a named parameter. + </p> +<p> + The code for this class is generated by a calling a macro from the Boost.Parameter library: + <code class="computeroutput">BOOST_PARAMETER_TEMPLATE_KEYWORD(extended_slot_function_type)</code> + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="slot_function_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="mutex_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/keywords/group_compare_type.html b/doc/html/boost/signals2/keywords/group_compare_type.html new file mode 100755 index 0000000000..8aab91f8ce --- /dev/null +++ b/doc/html/boost/signals2/keywords/group_compare_type.html @@ -0,0 +1,61 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template group_compare_type</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>"> +<link rel="prev" href="group_type.html" title="Class template group_type"> +<link rel="next" href="slot_function_type.html" title="Class template slot_function_type"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="group_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="slot_function_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.keywords.group_compare_type"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template group_compare_type</span></h2> +<p>boost::signals2::keywords::group_compare_type — A template keyword for <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a>.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>">boost/signals2/signal_type.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> GroupCompare<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="group_compare_type.html" title="Class template group_compare_type">group_compare_type</a> <span class="special">:</span> <span class="keyword">public</span> <span class="emphasis"><em><span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">type</span></em></span> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3170335"></a><h2>Description</h2> +<p> + This class is a template keyword which may be used to pass the wrapped <code class="computeroutput">GroupCompare</code> + template type to the <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a> metafunction as a named parameter. + </p> +<p> + The code for this class is generated by a calling a macro from the Boost.Parameter library: + <code class="computeroutput">BOOST_PARAMETER_TEMPLATE_KEYWORD(group_compare_type)</code> + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="group_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="slot_function_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/keywords/group_type.html b/doc/html/boost/signals2/keywords/group_type.html new file mode 100755 index 0000000000..3147b5c06b --- /dev/null +++ b/doc/html/boost/signals2/keywords/group_type.html @@ -0,0 +1,61 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template group_type</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>"> +<link rel="prev" href="combiner_type.html" title="Class template combiner_type"> +<link rel="next" href="group_compare_type.html" title="Class template group_compare_type"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="combiner_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="group_compare_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.keywords.group_type"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template group_type</span></h2> +<p>boost::signals2::keywords::group_type — A template keyword for <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a>.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>">boost/signals2/signal_type.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Group<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="group_type.html" title="Class template group_type">group_type</a> <span class="special">:</span> <span class="keyword">public</span> <span class="emphasis"><em><span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">type</span></em></span> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3170182"></a><h2>Description</h2> +<p> + This class is a template keyword which may be used to pass the wrapped <code class="computeroutput">Group</code> + template type to the <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a> metafunction as a named parameter. + </p> +<p> + The code for this class is generated by a calling a macro from the Boost.Parameter library: + <code class="computeroutput">BOOST_PARAMETER_TEMPLATE_KEYWORD(group_type)</code> + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="combiner_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="group_compare_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/keywords/mutex_type.html b/doc/html/boost/signals2/keywords/mutex_type.html new file mode 100755 index 0000000000..b887b7255b --- /dev/null +++ b/doc/html/boost/signals2/keywords/mutex_type.html @@ -0,0 +1,61 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template mutex_type</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>"> +<link rel="prev" href="extended_slot_function__id791201.html" title="Class template extended_slot_function_type"> +<link rel="next" href="../signal_type.html" title="Class template signal_type"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="extended_slot_function__id791201.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="../signal_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.keywords.mutex_type"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template mutex_type</span></h2> +<p>boost::signals2::keywords::mutex_type — A template keyword for <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a>.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>">boost/signals2/signal_type.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Mutex<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="mutex_type.html" title="Class template mutex_type">mutex_type</a> <span class="special">:</span> <span class="keyword">public</span> <span class="emphasis"><em><span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">type</span></em></span> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3170795"></a><h2>Description</h2> +<p> + This class is a template keyword which may be used to pass the wrapped <code class="computeroutput">Mutex</code> + template type to the <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a> metafunction as a named parameter. + </p> +<p> + The code for this class is generated by a calling a macro from the Boost.Parameter library: + <code class="computeroutput">BOOST_PARAMETER_TEMPLATE_KEYWORD(mutex_type)</code> + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="extended_slot_function__id791201.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="../signal_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/keywords/signature_type.html b/doc/html/boost/signals2/keywords/signature_type.html new file mode 100755 index 0000000000..93f072e6ca --- /dev/null +++ b/doc/html/boost/signals2/keywords/signature_type.html @@ -0,0 +1,61 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template signature_type</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>"> +<link rel="prev" href="../signal_base.html" title="Class signal_base"> +<link rel="next" href="combiner_type.html" title="Class template combiner_type"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../signal_base.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="combiner_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.keywords.signature_type"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template signature_type</span></h2> +<p>boost::signals2::keywords::signature_type — A template keyword for <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a>.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>">boost/signals2/signal_type.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Signature<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="signature_type.html" title="Class template signature_type">signature_type</a> <span class="special">:</span> <span class="keyword">public</span> <span class="emphasis"><em><span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">type</span></em></span> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3169878"></a><h2>Description</h2> +<p> + This class is a template keyword which may be used to pass the wrapped <code class="computeroutput">Signature</code> + template type to the <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a> metafunction as a named parameter. + </p> +<p> + The code for this class is generated by a calling a macro from the Boost.Parameter library: + <code class="computeroutput">BOOST_PARAMETER_TEMPLATE_KEYWORD(signature_type)</code> + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../signal_base.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="combiner_type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/keywords/slot_function_type.html b/doc/html/boost/signals2/keywords/slot_function_type.html new file mode 100755 index 0000000000..cbb288f4ca --- /dev/null +++ b/doc/html/boost/signals2/keywords/slot_function_type.html @@ -0,0 +1,61 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template slot_function_type</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>"> +<link rel="prev" href="group_compare_type.html" title="Class template group_compare_type"> +<link rel="next" href="extended_slot_function__id791201.html" title="Class template extended_slot_function_type"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="group_compare_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="extended_slot_function__id791201.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.keywords.slot_function_type"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template slot_function_type</span></h2> +<p>boost::signals2::keywords::slot_function_type — A template keyword for <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a>.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>">boost/signals2/signal_type.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> SlotFunction<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="slot_function_type.html" title="Class template slot_function_type">slot_function_type</a> <span class="special">:</span> <span class="keyword">public</span> <span class="emphasis"><em><span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">type</span></em></span> <span class="special">{</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3170488"></a><h2>Description</h2> +<p> + This class is a template keyword which may be used to pass the wrapped <code class="computeroutput">SlotFunction</code> + template type to the <a class="link" href="../signal_type.html" title="Class template signal_type">signal_type</a> metafunction as a named parameter. + </p> +<p> + The code for this class is generated by a calling a macro from the Boost.Parameter library: + <code class="computeroutput">BOOST_PARAMETER_TEMPLATE_KEYWORD(slot_function_type)</code> + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="group_compare_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../signals2/reference.html#header.boost.signals2.signal_type_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="extended_slot_function__id791201.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/last_value.html b/doc/html/boost/signals2/last_value.html new file mode 100755 index 0000000000..4b42bcb65b --- /dev/null +++ b/doc/html/boost/signals2/last_value.html @@ -0,0 +1,98 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template last_value</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.last_value_hpp" title="Header <boost/signals2/last_value.hpp>"> +<link rel="prev" href="dummy_mutex.html" title="Class dummy_mutex"> +<link rel="next" href="last_value_void_id821952.html" title="Class last_value<void>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dummy_mutex.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.last_value_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="last_value_void_id821952.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.last_value"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template last_value</span></h2> +<p>boost::signals2::last_value — Evaluate an <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a> sequence and return the + last value in the sequence.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.last_value_hpp" title="Header <boost/signals2/last_value.hpp>">boost/signals2/last_value.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="last_value.html" title="Class template last_value">last_value</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">T</span> <a name="boost.signals2.last_value.result_type"></a><span class="identifier">result_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="last_value.html#id1381581-bb">invocation</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a><span class="special">></span> + <span class="identifier">result_type</span> <a class="link" href="last_value.html#id1381585-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3159914"></a><h2>Description</h2> +<p> + The <code class="computeroutput">last_value</code> class was the default <code class="computeroutput">Combiner</code> template parameter + type for signals in the original Signals library. + Signals2 uses <a class="link" href="optional_last_value.html" title="Class template optional_last_value">optional_last_value</a> as the default, which + does not throw. + </p> +<div class="refsect2"> +<a name="id3159946"></a><h3> +<a name="id1381581-bb"></a><code class="computeroutput">last_value</code> invocation</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a><span class="special">></span> + <span class="identifier">result_type</span> <a name="id1381585-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">InputIterator</span> first<span class="special">,</span> <span class="identifier">InputIterator</span> last<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Attempts to dereference every iterator in the sequence <code class="computeroutput">[first, last)</code>. + </p></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The result of the last successful iterator dereference.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p><a class="link" href="no_slots_error.html" title="Class no_slots_error">no_slots_error</a> if no iterators were successfully dereferenced, + unless the template type of <code class="computeroutput">last_value</code> is <code class="computeroutput">void</code>.</p></td> +</tr> +</tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="id3160107"></a><h3>Specializations</h3> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="last_value_void_id821952.html" title="Class last_value<void>">Class last_value<void></a></p></li></ul></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="dummy_mutex.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.last_value_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="last_value_void_id821952.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/last_value_void_id821952.html b/doc/html/boost/signals2/last_value_void_id821952.html new file mode 100755 index 0000000000..87fff5f904 --- /dev/null +++ b/doc/html/boost/signals2/last_value_void_id821952.html @@ -0,0 +1,82 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class last_value<void></title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.last_value_hpp" title="Header <boost/signals2/last_value.hpp>"> +<link rel="prev" href="last_value.html" title="Class template last_value"> +<link rel="next" href="no_slots_error.html" title="Class no_slots_error"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="last_value.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.last_value_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="no_slots_error.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.last_value_void_id821952"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class last_value<void></span></h2> +<p>boost::signals2::last_value<void> — Evaluate an InputIterator sequence.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.last_value_hpp" title="Header <boost/signals2/last_value.hpp>">boost/signals2/last_value.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="last_value_void_id821952.html" title="Class last_value<void>">last_value</a><span class="special"><</span><span class="keyword">void</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="keyword">void</span> <a name="boost.signals2.last_value_void_id821952.result_type"></a><span class="identifier">result_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="last_value_void_id821952.html#id811008-bb">invocation</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a><span class="special">></span> + <span class="identifier">result_type</span> <a class="link" href="last_value_void_id821952.html#id759468-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3160338"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id3160341"></a><h3> +<a name="id811008-bb"></a><code class="computeroutput">last_value</code> invocation</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a><span class="special">></span> + <span class="identifier">result_type</span> <a name="id759468-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">InputIterator</span> first<span class="special">,</span> <span class="identifier">InputIterator</span> last<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Attempts to dereference every iterator in the sequence <code class="computeroutput">[first, last)</code>. + </p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Unlike the non-void versions of <code class="computeroutput">last_value</code>, the void specialization does not throw.</p></td> +</tr> +</tbody> +</table></div> +</li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="last_value.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.last_value_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="no_slots_error.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/mutex.html b/doc/html/boost/signals2/mutex.html new file mode 100755 index 0000000000..5f3efd2c75 --- /dev/null +++ b/doc/html/boost/signals2/mutex.html @@ -0,0 +1,96 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class mutex</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.mutex_hpp" title="Header <boost/signals2/mutex.hpp>"> +<link rel="prev" href="no_slots_error.html" title="Class no_slots_error"> +<link rel="next" href="optional_last_value.html" title="Class template optional_last_value"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="no_slots_error.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.mutex_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="optional_last_value.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.mutex"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class mutex</span></h2> +<p>boost::signals2::mutex — A header-only mutex which implements the Lockable concept of Boost.Thread.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.mutex_hpp" title="Header <boost/signals2/mutex.hpp>">boost/signals2/mutex.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="mutex.html" title="Class mutex">mutex</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="keyword">void</span> <a class="link" href="mutex.html#id1378954-bb"><span class="identifier">lock</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="mutex.html#id1402972-bb"><span class="identifier">try_lock</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="mutex.html#id1304218-bb"><span class="identifier">unlock</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3160938"></a><h2>Description</h2> +<p> + The <code class="computeroutput">mutex</code> class implements the <code class="computeroutput">Lockable</code> + concept of Boost.Thread, and is the default <code class="computeroutput">Mutex</code> template parameter + type for signals. + If boost has detected thread support in your compiler, the <code class="computeroutput">mutex</code> + class will map to a CRITICAL_SECTION on Windows + or a pthread_mutex on POSIX. If thread support is not detected, <code class="computeroutput">mutex</code> + will behave similarly to a <a class="link" href="dummy_mutex.html" title="Class dummy_mutex">dummy_mutex</a>. + The header file <code class="computeroutput">boost/config.hpp</code> + defines the macro <code class="computeroutput">BOOST_HAS_THREADS</code> when boost detects threading support. + The user may globally disable thread support + in boost by defining BOOST_DISABLE_THREADS before any boost header files are included. + </p> +<p> + If you are already using the Boost.Thread library, you may prefer to use its + boost::mutex class instead as the mutex type for your signals. + </p> +<p> + You may wish to use a thread-unsafe signal, if + the signal is only used by a single thread. In that case, you may prefer to + use the <a class="link" href="dummy_mutex.html" title="Class dummy_mutex">signals2::dummy_mutex</a> class as the <code class="computeroutput">Mutex</code> + template type for your signal. + </p> +<pre class="literallayout"><span class="keyword">void</span> <a name="id1378954-bb"></a><span class="identifier">lock</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p>Locks the mutex. + </p> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id1402972-bb"></a><span class="identifier">try_lock</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p>Makes a non-blocking attempt to lock the mutex. + </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">true</code> on success.</p></td> +</tr></tbody> +</table></div> +<pre class="literallayout"><span class="keyword">void</span> <a name="id1304218-bb"></a><span class="identifier">unlock</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p>Unlocks the mutex. + </p> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="no_slots_error.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.mutex_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="optional_last_value.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/no_slots_error.html b/doc/html/boost/signals2/no_slots_error.html new file mode 100755 index 0000000000..c82ff6832e --- /dev/null +++ b/doc/html/boost/signals2/no_slots_error.html @@ -0,0 +1,57 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class no_slots_error</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.last_value_hpp" title="Header <boost/signals2/last_value.hpp>"> +<link rel="prev" href="last_value_void_id821952.html" title="Class last_value<void>"> +<link rel="next" href="mutex.html" title="Class mutex"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="last_value_void_id821952.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.last_value_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="mutex.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.no_slots_error"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class no_slots_error</span></h2> +<p>boost::signals2::no_slots_error — Indicates a combiner was unable to synthesize a return value.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.last_value_hpp" title="Header <boost/signals2/last_value.hpp>">boost/signals2/last_value.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="no_slots_error.html" title="Class no_slots_error">no_slots_error</a> <span class="special">:</span> <span class="keyword">public</span> std::exception <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <a class="link" href="no_slots_error.html#id787583-bb"><span class="identifier">what</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3160620"></a><h2>Description</h2>The <code class="computeroutput">no_slots_error</code> exception may be thrown by <a class="link" href="last_value.html" title="Class template last_value">signals2::last_value</a> + when it is run but unable to obtain any results from its input iterators. + <pre class="literallayout"><span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <a name="id787583-bb"></a><span class="identifier">what</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="last_value_void_id821952.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.last_value_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="mutex.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/optional_last_value.html b/doc/html/boost/signals2/optional_last_value.html new file mode 100755 index 0000000000..8d69d251cb --- /dev/null +++ b/doc/html/boost/signals2/optional_last_value.html @@ -0,0 +1,103 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template optional_last_value</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.optional_last_value_hpp" title="Header <boost/signals2/optional_last_value.hpp>"> +<link rel="prev" href="mutex.html" title="Class mutex"> +<link rel="next" href="optional_last_value_voi_id1379848.html" title="Class optional_last_value<void>"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="mutex.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.optional_last_value_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="optional_last_value_voi_id1379848.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.optional_last_value"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template optional_last_value</span></h2> +<p>boost::signals2::optional_last_value — Evaluate an <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a> sequence and return + a boost::optional which contains the last value in the sequence, or an + empty boost::optional if the sequence was empty.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.optional_last_value_hpp" title="Header <boost/signals2/optional_last_value.hpp>">boost/signals2/optional_last_value.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="optional_last_value.html" title="Class template optional_last_value">optional_last_value</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> boost::optional<span class="special"><</span><span class="identifier">T</span><span class="special">></span> <a name="boost.signals2.optional_last_value.result_type"></a><span class="identifier">result_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="optional_last_value.html#id1401350-bb">invocation</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a><span class="special">></span> + <span class="identifier">result_type</span> <a class="link" href="optional_last_value.html#id807202-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3161549"></a><h2>Description</h2> +<p> + <code class="computeroutput">optional_last_value</code> is the default Combiner template type for signals in the + Boost.Signals2 library. The advantage of <code class="computeroutput">optional_last_value</code> over + <a class="link" href="last_value.html" title="Class template last_value">signals2::last_value</a> is that <code class="computeroutput">optional_last_value</code> + can return an empty boost::optional. rather + than throwing an exception, when + its <code class="computeroutput">InputIterator</code> sequence is empty. + </p> +<div class="refsect2"> +<a name="id3161593"></a><h3> +<a name="id1401350-bb"></a><code class="computeroutput">optional_last_value</code> invocation</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a><span class="special">></span> + <span class="identifier">result_type</span> <a name="id807202-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">InputIterator</span> first<span class="special">,</span> <span class="identifier">InputIterator</span> last<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Attempts to dereference every iterator in the sequence <code class="computeroutput">[first, last)</code>. + </p></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p> + The result of the last successful iterator dereference, wrapped in a boost::optional. + The returned <code class="computeroutput">optional</code> will be empty if no iterators were dereferenced. + </p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Does not throw.</p></td> +</tr> +</tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="id3161747"></a><h3>Specializations</h3> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="optional_last_value_voi_id1379848.html" title="Class optional_last_value<void>">Class optional_last_value<void></a></p></li></ul></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="mutex.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.optional_last_value_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="optional_last_value_voi_id1379848.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/optional_last_value_voi_id1379848.html b/doc/html/boost/signals2/optional_last_value_voi_id1379848.html new file mode 100755 index 0000000000..46f686cdda --- /dev/null +++ b/doc/html/boost/signals2/optional_last_value_voi_id1379848.html @@ -0,0 +1,83 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class optional_last_value<void></title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.optional_last_value_hpp" title="Header <boost/signals2/optional_last_value.hpp>"> +<link rel="prev" href="optional_last_value.html" title="Class template optional_last_value"> +<link rel="next" href="shared_connection_block.html" title="Class shared_connection_block"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="optional_last_value.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.optional_last_value_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="shared_connection_block.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.optional_last_value_voi_id1379848"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class optional_last_value<void></span></h2> +<p>boost::signals2::optional_last_value<void> — Evaluate an InputIterator sequence.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.optional_last_value_hpp" title="Header <boost/signals2/optional_last_value.hpp>">boost/signals2/optional_last_value.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="optional_last_value_voi_id1379848.html" title="Class optional_last_value<void>">optional_last_value</a><span class="special"><</span><span class="keyword">void</span><span class="special">></span> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="keyword">void</span> <a name="boost.signals2.optional_last_value_voi_id1379848.result_type"></a><span class="identifier">result_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="optional_last_value_voi_id1379848.html#id823885-bb">invocation</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a><span class="special">></span> + <span class="identifier">result_type</span> <a class="link" href="optional_last_value_voi_id1379848.html#id823889-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3161979"></a><h2>Description</h2> +<p>This specialization of <a class="link" href="optional_last_value.html" title="Class template optional_last_value">signals2::optional_last_value</a> is provided + to cope with the fact that there is no such thing as an + <code class="computeroutput">optional<void></code>, which + <a class="link" href="optional_last_value.html" title="Class template optional_last_value">optional_last_value</a> would otherwise try to + use as its <code class="computeroutput">result_type</code>. This specialization + instead sets the <code class="computeroutput">result_type</code> to be <code class="computeroutput">void</code>. + </p> +<div class="refsect2"> +<a name="id3162030"></a><h3> +<a name="id823885-bb"></a><code class="computeroutput">optional_last_value</code> invocation</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <a class="link" href="../../InputIterator.html" title="Concept InputIterator">InputIterator</a><span class="special">></span> + <span class="identifier">result_type</span> <a name="id823889-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">InputIterator</span> first<span class="special">,</span> <span class="identifier">InputIterator</span> last<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Attempts to dereference every iterator in the sequence <code class="computeroutput">[first, last)</code>. + </p></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="optional_last_value.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.optional_last_value_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="shared_connection_block.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/postconstructor_invoker.html b/doc/html/boost/signals2/postconstructor_invoker.html new file mode 100755 index 0000000000..f787b7f43c --- /dev/null +++ b/doc/html/boost/signals2/postconstructor_invoker.html @@ -0,0 +1,109 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class postconstructor_invoker</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.deconstruct_hpp" title="Header <boost/signals2/deconstruct.hpp>"> +<link rel="prev" href="deconstruct_access.html" title="Class deconstruct_access"> +<link rel="next" href="dummy_mutex.html" title="Class dummy_mutex"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="deconstruct_access.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.deconstruct_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="dummy_mutex.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.postconstructor_invoker"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class postconstructor_invoker</span></h2> +<p>boost::signals2::postconstructor_invoker — Pass arguments to and run postconstructors for objects created with <a class="link" href="deconstruct.html" title="Function deconstruct">deconstruct()</a>.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.deconstruct_hpp" title="Header <boost/signals2/deconstruct.hpp>">boost/signals2/deconstruct.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="postconstructor_invoker.html" title="Class postconstructor_invoker">postconstructor_invoker</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + + <span class="comment">// <a class="link" href="postconstructor_invoker.html#id1382644-bb">public methods</a></span> + <a class="link" href="postconstructor_invoker.html#id1382648-bb"><span class="keyword">operator</span> <span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="postconstructor_invoker.html#id823341-bb"><span class="identifier">postconstruct</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> A1<span class="special">></span> <span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="postconstructor_invoker.html#id1300528-bb"><span class="identifier">postconstruct</span></a><span class="special">(</span><span class="identifier">A1</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> A1<span class="special">,</span> <span class="keyword">typename</span> A2<span class="special">></span> + <span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="postconstructor_invoker.html#id781388-bb"><span class="identifier">postconstruct</span></a><span class="special">(</span><span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A1</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> A1<span class="special">,</span> <span class="keyword">typename</span> A2, ...<span class="special">,</span> <span class="keyword">typename</span> AN<span class="special">></span> + <span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a class="link" href="postconstructor_invoker.html#id1290548-bb"><span class="identifier">postconstruct</span></a><span class="special">(</span><span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A1</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">A1</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3158516"></a><h2>Description</h2> +<p> + Objects of type <code class="computeroutput">postconstructor_invoker</code> are returned by calls to the + <a class="link" href="deconstruct.html" title="Function deconstruct">deconstruct()</a> factory function. These objects are intended + to either be immediately assigned to a shared_ptr (in which case the + class' conversion operator will perform the conversion by calling the + <a class="link" href="postconstructor_invoker.html#id791253-bb">postconstruct</a> with no arguments), or to be converted + to shared_ptr explicitly by the user calling one of + the <a class="link" href="postconstructor_invoker.html#id791253-bb">postconstruct</a> methods. + </p> +<div class="refsect2"> +<a name="id3158558"></a><h3> +<a name="id1382644-bb"></a><code class="computeroutput">postconstructor_invoker</code> public methods</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="id1382648-bb"></a><span class="keyword">operator</span> <span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p> + The conversion operator has the same effect as explicitly calling + the <code class="computeroutput"><a class="link" href="postconstructor_invoker.html#id791253-bb">postconstruct</a></code> method with no arguments. + </p> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id791253-bb"></a><span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a name="id823341-bb"></a><span class="identifier">postconstruct</span><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> A1<span class="special">></span> <span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a name="id1300528-bb"></a><span class="identifier">postconstruct</span><span class="special">(</span><span class="identifier">A1</span> a1<span class="special">)</span><span class="special">;</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> A1<span class="special">,</span> <span class="keyword">typename</span> A2<span class="special">></span> + <span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a name="id781388-bb"></a><span class="identifier">postconstruct</span><span class="special">(</span><span class="identifier">A1</span> a1<span class="special">,</span> <span class="identifier">A1</span> a2<span class="special">)</span><span class="special">;</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> A1<span class="special">,</span> <span class="keyword">typename</span> A2, ...<span class="special">,</span> <span class="keyword">typename</span> AN<span class="special">></span> + <span class="keyword">const</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">&</span> <a name="id1290548-bb"></a><span class="identifier">postconstruct</span><span class="special">(</span><span class="identifier">A1</span> a1<span class="special">,</span> <span class="identifier">A1</span> a2<span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">A1</span> aN<span class="special">)</span><span class="special">;</span></pre> +<p> + The <code class="computeroutput">postconstruct</code> methods make an unqualified call to + <code class="computeroutput">adl_postconstruct()</code> and then return the <code class="computeroutput">shared_ptr</code> + which was wrapped inside the <code class="computeroutput">postconstructor_invoker</code> + object by <code class="computeroutput"><a class="link" href="deconstruct.html" title="Function deconstruct">deconstruct()</a></code>. + The first two arguments passed to the + <code class="computeroutput">adl_postconstruct()</code> call are always the <code class="computeroutput">shared_ptr</code> + owning the object created by <code class="computeroutput"><a class="link" href="deconstruct.html" title="Function deconstruct">deconstruct()</a></code>, + followed by a ordinary pointer to the same object. As a convenience, + the ordinary pointer + will always be cast to point to a non-const type before being passed + to <code class="computeroutput">adl_postconstruct</code>. The remaining arguments passed to + <code class="computeroutput">adl_postconstruct</code> are whatever arguments the user may have + passed to the <code class="computeroutput">postconstruct</code> + method. + </p> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="deconstruct_access.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.deconstruct_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="dummy_mutex.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/scoped_connection.html b/doc/html/boost/signals2/scoped_connection.html new file mode 100755 index 0000000000..565257297c --- /dev/null +++ b/doc/html/boost/signals2/scoped_connection.html @@ -0,0 +1,202 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class scoped_connection</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.connection_hpp" title="Header <boost/signals2/connection.hpp>"> +<link rel="prev" href="connection.html" title="Class connection"> +<link rel="next" href="deconstruct.html" title="Function deconstruct"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<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> +</div> +<div class="refentry"> +<a name="boost.signals2.scoped_connection"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class scoped_connection</span></h2> +<p>boost::signals2::scoped_connection — Limits a signal-slot connection lifetime to a particular scope.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.connection_hpp" title="Header <boost/signals2/connection.hpp>">boost/signals2/connection.hpp</a>> + +</span> +<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> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// <a class="link" href="scoped_connection.html#id1401939-bbconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="scoped_connection.html#id791918-bb"><span class="identifier">scoped_connection</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="scoped_connection.html#id793961-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">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="scoped_connection.html#id1359476-bb"><span class="special">~</span><span class="identifier">scoped_connection</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="scoped_connection.html#id797932-bb">public methods</a></span> + <span class="identifier">scoped_connection</span> <span class="special">&</span> <a class="link" href="scoped_connection.html#id1289784-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">connection</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="connection.html" title="Class connection">connection</a> <a class="link" href="scoped_connection.html#id1296095-bb"><span class="identifier">release</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="keyword">private</span><span class="special">:</span> + <span class="comment">// <a class="link" href="scoped_connection.html#id1299037-bbconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="scoped_connection.html#id823670-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">&</span><span class="special">)</span><span class="special">;</span> + scoped_connection& <a class="link" href="scoped_connection.html#id1383812-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">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3155785"></a><h2>Description</h2> +<p>A <a class="link" href="connection.html" title="Class connection">connection</a> which automatically disconnects on destruction.</p> +<div class="section"> +<div class="titlepage"><div><div><h6 class="title"> +<a name="id3155801"></a>Thread Safety</h6></div></div></div> +<p>The methods of the <code class="computeroutput">scoped_connection</code> class (including those + inherited from its base <code class="computeroutput">connection</code> class) are thread-safe with the exception + of <a class="link" href="connection.html#id1402738-bb">signals2::connection::swap</a>, <a class="link" href="scoped_connection.html#id1296095-bb">release</a>, and + the assignment operator. A <code class="computeroutput">scoped_connection</code> object + should not be accessed concurrently when any of these operations is in progress. + However, it is always safe to access a different <code class="computeroutput">connection</code> object + in another thread, even if it references the same underlying signal-slot connection. + </p> +</div> +<div class="refsect2"> +<a name="id3155856"></a><h3> +<a name="id1401939-bbconstruct-copy-destruct"></a><code class="computeroutput">scoped_connection</code> public construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="id791918-bb"></a><span class="identifier">scoped_connection</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p>Default constructs an empty scoped_connection.</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput"><a class="link" href="connection.html#id1289781-bb">connected</a>() == false </code></p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id793961-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">&</span> other<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p><code class="computeroutput">this</code> references + the connection referenced by + <code class="computeroutput">other</code>.</p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput"><a class="link" href="connection.html#id1289781-bb">connected</a>() == other.connected()</code></p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id1359476-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> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>If + <code class="computeroutput">this-><a class="link" href="connection.html#id1289781-bb">connected</a>()</code>, + disconnects the signal-slot connection.</p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3156089"></a><h3> +<a name="id797932-bb"></a><code class="computeroutput">scoped_connection</code> public methods</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">scoped_connection</span> <span class="special">&</span> <a name="id1289784-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">connection</span> <span class="special">&</span> rhs<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p><code class="computeroutput">this</code> references + the connection referenced by + <code class="computeroutput">rhs</code>. If <code class="computeroutput">this</code> already references another + connection, the old connection will be disconnected first. + </p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput"><a class="link" href="connection.html#id1289781-bb">connected</a>() == rhs.connected()</code></p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a class="link" href="connection.html" title="Class connection">connection</a> <a name="id1296095-bb"></a><span class="identifier">release</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p> + Releases the connection so it will not be disconnected by the <code class="computeroutput">scoped_connection</code> + when it is destroyed or reassigned. The <code class="computeroutput">scoped_connection</code> is reset to + the NULL connection after this call completes. + </p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput"><a class="link" href="connection.html#id1289781-bb">connected</a>() == false</code></p></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A <a class="link" href="connection.html" title="Class connection">connection</a> object referencing the connection which was + released by the <code class="computeroutput">scoped_connection</code>. + </p></td> +</tr> +</tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3156317"></a><h3> +<a name="id1299037-bbconstruct-copy-destruct"></a><code class="computeroutput">scoped_connection</code> private construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="id823670-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">&</span> other<span class="special">)</span><span class="special">;</span></pre> +<p>The scoped_connection class is not copyable. It may only be constructed from a <code class="computeroutput"><a class="link" href="connection.html" title="Class connection">connection</a></code> object.</p> +</li> +<li class="listitem"> +<pre class="literallayout">scoped_connection& <a name="id1383812-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">&</span> rhs<span class="special">)</span><span class="special">;</span></pre> +<p>The scoped_connection class is not copyable. It may only be assigned from a <code class="computeroutput"><a class="link" href="connection.html" title="Class connection">connection</a></code> object.</p> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<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> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/shared_connection_block.html b/doc/html/boost/signals2/shared_connection_block.html new file mode 100755 index 0000000000..bba17a6e4e --- /dev/null +++ b/doc/html/boost/signals2/shared_connection_block.html @@ -0,0 +1,263 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class shared_connection_block</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.shared_connection_block_hpp" title="Header <boost/signals2/shared_connection_block.hpp>"> +<link rel="prev" href="optional_last_value_voi_id1379848.html" title="Class optional_last_value<void>"> +<link rel="next" href="signal.html" title="Class template signal"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="optional_last_value_voi_id1379848.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.shared_connection_block_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="signal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.shared_connection_block"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class shared_connection_block</span></h2> +<p>boost::signals2::shared_connection_block — Blocks a connection between a signal and a slot.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.shared_connection_block_hpp" title="Header <boost/signals2/shared_connection_block.hpp>">boost/signals2/shared_connection_block.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="shared_connection_block.html" title="Class shared_connection_block">shared_connection_block</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// <a class="link" href="shared_connection_block.html#boost.signals2.shared_connection_blockconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="shared_connection_block.html#id792102-bb"><span class="identifier">shared_connection_block</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">boost::signals2::connection</a> <span class="special">&</span> <span class="special">=</span> <span class="identifier">connection</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="keyword">bool</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="shared_connection_block.html#id1100483-bb"><span class="identifier">shared_connection_block</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">signals2</span><span class="special">::</span><span class="identifier">shared_connection_block</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + shared_connection_block& + <a class="link" href="shared_connection_block.html#id1378488-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">signals2</span><span class="special">::</span><span class="identifier">shared_connection_block</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="shared_connection_block.html#id805241-bb"><span class="special">~</span><span class="identifier">shared_connection_block</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="shared_connection_block.html#id1287346-bb">connection blocking</a></span> + <span class="keyword">void</span> <a class="link" href="shared_connection_block.html#id1287350-bb"><span class="identifier">unblock</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="shared_connection_block.html#id1301268-bb"><span class="identifier">block</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="shared_connection_block.html#id1172736-bb"><span class="identifier">blocking</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="shared_connection_block.html#id1405934-bb">miscellaneous methods</a></span> + <a class="link" href="connection.html" title="Class connection">boost::signals2::connection</a> <a class="link" href="shared_connection_block.html#id1405938-bb"><span class="identifier">connection</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3162718"></a><h2>Description</h2> +<p>A <code class="computeroutput">shared_connection_block</code> object blocks a + connection, preventing the associated slot from executing when the + associated signal is invoked. The connection will remain + blocked until every <code class="computeroutput">shared_connection_block</code> that references + the connection + releases its block. A <code class="computeroutput">shared_connection_block</code> releases + its block when it is destroyed or its + <a class="link" href="shared_connection_block.html#id1287350-bb">unblock</a> method is called.</p> +<p>A <code class="computeroutput">shared_connection_block</code> is safe to use even + after the <a class="link" href="connection.html" title="Class connection">signals2::connection</a> object it was constructed + from has been destroyed, or the connection it references has been + disconnected.</p> +<p> + Note, blocking a connection does not guarantee the associated slot + has finished execution if it is already in the process of being run + when the connection block goes into effect. This is similar + to the behaviour of disconnect, in that blocking a connection + will not wait for the connection's associated slot to complete execution. + This situation may arise in a multi-threaded environment if the + connection block goes into effect concurrently with signal invocation, + or in a single-threaded environment if a slot blocks its own + connection. + </p> +<div class="refsect2"> +<a name="id3162779"></a><h3> +<a name="boost.signals2.shared_connection_blockconstruct-copy-destruct"></a><code class="computeroutput">shared_connection_block</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="id792102-bb"></a><span class="identifier">shared_connection_block</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">boost::signals2::connection</a> <span class="special">&</span> conn <span class="special">=</span> <span class="identifier">connection</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="keyword">bool</span> initially_blocking <span class="special">=</span> <span class="keyword">true</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td> +<p>Creates a <code class="computeroutput">shared_connection_block</code> which can block + the connection referenced by <code class="computeroutput">conn</code>. The <code class="computeroutput">shared_connection_block</code> + will initially block the connection if and only if the + <code class="computeroutput">initially_blocking</code> + parameter is <code class="computeroutput">true</code>. The block on the connection may be released + by calling the <a class="link" href="shared_connection_block.html#id1287350-bb">unblock</a> method, + or destroying the <code class="computeroutput">shared_connection_block</code> object.</p> +<p>Default construction of a <code class="computeroutput">shared_connection_block</code> results in a + <code class="computeroutput">shared_connection_block</code> which references the NULL connection. + Such a <code class="computeroutput">shared_connection_block</code> is safe to use, though not + particularly useful until it is assigned another + <code class="computeroutput">shared_connection_block</code> which references a real connection. + </p> +</td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput">this->blocking() == initially_blocking</code></p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id1100483-bb"></a><span class="identifier">shared_connection_block</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">signals2</span><span class="special">::</span><span class="identifier">shared_connection_block</span> <span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p> + Copy constructs a <code class="computeroutput">shared_connection_block</code> which references + the same connection as <code class="computeroutput">other</code>. + </p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td> +<p><code class="computeroutput">this->connection() == other.connection()</code></p> +<p><code class="computeroutput">this->blocking() == other.blocking()</code></p> +</td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout">shared_connection_block& +<a name="id1378488-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">signals2</span><span class="special">::</span><span class="identifier">shared_connection_block</span> <span class="special">&</span> rhs<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p> + Makes <code class="computeroutput">this</code> reference the same connection as <code class="computeroutput">rhs</code>. + </p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td> +<p><code class="computeroutput">this->connection() == rhs.connection()</code></p> +<p><code class="computeroutput">this->blocking() == rhs.blocking()</code></p> +</td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id805241-bb"></a><span class="special">~</span><span class="identifier">shared_connection_block</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>If <a class="link" href="shared_connection_block.html#id1172736-bb">blocking</a>() is true, releases the connection block.</p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3163540"></a><h3> +<a name="id1287346-bb"></a><code class="computeroutput">shared_connection_block</code> connection blocking</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="id1287350-bb"></a><span class="identifier">unblock</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>If <a class="link" href="shared_connection_block.html#id1172736-bb">blocking</a>() is true, releases the connection block. + Note, the connection may remain blocked due to + other <code class="computeroutput">shared_connection_block</code> objects.</p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput">this->blocking() == false</code>.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="id1301268-bb"></a><span class="identifier">block</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>If <a class="link" href="shared_connection_block.html#id1172736-bb">blocking</a>() is false, reasserts a block on + the connection.</p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput">this->blocking() == true</code>.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id1172736-bb"></a><span class="identifier">blocking</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">true</code> if <code class="computeroutput">this</code> is asserting a block on the connection.</p></td> +</tr> +<tr> +<td><p><span class="term">Notes:</span></p></td> +<td><p><code class="computeroutput">this->blocking() == true</code> implies <code class="computeroutput"><a class="link" href="connection.html#id1284179-bb">connection::blocked</a>() == true</code> + for the connection. However, <code class="computeroutput">this->blocking() == false</code> does not necessarily imply + <code class="computeroutput">connection::blocked() == false</code>, since the connection may be + blocked by another <code class="computeroutput">shared_connection_block</code> object.</p></td> +</tr> +</tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3163806"></a><h3> +<a name="id1405934-bb"></a><code class="computeroutput">shared_connection_block</code> miscellaneous methods</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a class="link" href="connection.html" title="Class connection">boost::signals2::connection</a> <a name="id1405938-bb"></a><span class="identifier">connection</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A connection object for the connection referenced by <code class="computeroutput">this</code>.</p></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="optional_last_value_voi_id1379848.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.shared_connection_block_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="signal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/signal.html b/doc/html/boost/signals2/signal.html new file mode 100755 index 0000000000..db7a1e48ad --- /dev/null +++ b/doc/html/boost/signals2/signal.html @@ -0,0 +1,494 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template signal</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.signal_hpp" title="Header <boost/signals2/signal.hpp>"> +<link rel="prev" href="shared_connection_block.html" title="Class shared_connection_block"> +<link rel="next" href="signal/arg.html" title="Class template arg"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="shared_connection_block.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.signal_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="signal/arg.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.signal"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template signal</span></h2> +<p>boost::signals2::signal — Safe multicast callback.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.signal_hpp" title="Header <boost/signals2/signal.hpp>">boost/signals2/signal.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Signature<span class="special">,</span> + <span class="keyword">typename</span> Combiner <span class="special">=</span> <a class="link" href="optional_last_value.html" title="Class template optional_last_value">boost::signals2::optional_last_value</a><span class="special"><</span><span class="identifier">R</span><span class="special">></span><span class="special">,</span> + <span class="keyword">typename</span> Group <span class="special">=</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> GroupCompare <span class="special">=</span> std::less<span class="special"><</span><span class="identifier">Group</span><span class="special">></span><span class="special">,</span> + <span class="keyword">typename</span> SlotFunction <span class="special">=</span> <a class="link" href="../function.html" title="Class template function">boost::function</a><span class="special"><</span><span class="identifier">Signature</span><span class="special">></span><span class="special">,</span> + <span class="keyword">typename</span> ExtendedSlotFunction <span class="special">=</span> <a class="link" href="../function.html" title="Class template function">boost::function</a><span class="special"><</span><span class="identifier">R</span> <span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">connection</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">TN</span><span class="special">)</span><span class="special">></span><span class="special">,</span> + <span class="keyword">typename</span> Mutex <span class="special">=</span> <a class="link" href="mutex.html" title="Class mutex">boost::signals2::mutex</a><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="signal.html" title="Class template signal">signal</a> <span class="special">:</span> <span class="keyword">public</span> <a class="link" href="signal_base.html" title="Class signal_base">boost::signals2::signal_base</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// <a class="link" href="signal.html#boost.signals2.signaltypes">types</a></span> + <span class="keyword">typedef</span> <span class="identifier">Signature</span> <a name="boost.signals2.signal.signature_type"></a><span class="identifier">signature_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Combiner</span><span class="special">::</span><span class="identifier">result_type</span> <a name="boost.signals2.signal.result_type"></a><span class="identifier">result_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Combiner</span> <a name="boost.signals2.signal.combiner_type"></a><span class="identifier">combiner_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">Group</span> <a name="boost.signals2.signal.group_type"></a><span class="identifier">group_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">GroupCompare</span> <a name="boost.signals2.signal.group_compare_type"></a><span class="identifier">group_compare_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">SlotFunction</span> <a name="boost.signals2.signal.slot_function_type"></a><span class="identifier">slot_function_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="link" href="slot.html" title="Class template slot">signals2::slot</a><span class="special"><</span><span class="identifier">Signature</span><span class="special">,</span> <span class="identifier">SlotFunction</span><span class="special">></span> <a name="boost.signals2.signal.slot_type"></a><span class="identifier">slot_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">ExtendedSlotFunction</span> <a name="boost.signals2.signal.extended_slot_function__id1382169"></a><span class="identifier">extended_slot_function_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="link" href="slot.html" title="Class template slot">signals2::slot</a><span class="special"><</span><span class="identifier">R</span> <span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">connection</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">T1</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">TN</span><span class="special">)</span><span class="special">,</span> <span class="identifier">ExtendedSlotFunction</span><span class="special">></span> <a class="link" href="signal.html#boost.signals2.signal.extended_slot_type"><span class="identifier">extended_slot_type</span></a><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">SlotFunction</span><span class="special">::</span><span class="identifier">result_type</span> <a class="link" href="signal.html#boost.signals2.signal.slot_result_type"><span class="identifier">slot_result_type</span></a><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="signal.html#boost.signals2.signal.slot_call_iterator"><span class="identifier">slot_call_iterator</span></a><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">T1</span> <a name="boost.signals2.signal.argument_type"></a><span class="identifier">argument_type</span><span class="special">;</span> <span class="comment">// Exists iff arity == 1</span> + <span class="keyword">typedef</span> <span class="identifier">T1</span> <a name="boost.signals2.signal.first_argument_type"></a><span class="identifier">first_argument_type</span><span class="special">;</span> <span class="comment">// Exists iff arity == 2</span> + <span class="keyword">typedef</span> <span class="identifier">T2</span> <a name="boost.signals2.signal.second_argument_type"></a><span class="identifier">second_argument_type</span><span class="special">;</span> <span class="comment">// Exists iff arity == 2</span> + + <span class="comment">// static constants</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">arity</span> = <span class="identifier">N</span><span class="special">;</span> <span class="comment">// The number of arguments taken by the signal.</span> + + <span class="comment">// member classes/structs/unions</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">unsigned</span> n<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="signal/arg.html" title="Class template arg">arg</a> <span class="special">{</span> + <span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Tn</span> <a class="link" href="signal/arg.html#boost.signals2.signal.arg.type"><span class="identifier">type</span></a><span class="special">;</span> <span class="comment">// The type of the <a class="link" href="signal.html" title="Class template signal">signal</a>'s (n+1)th argument</span> + <span class="special">}</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="signal.html#boost.signals2.signalconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="signal.html#id1088235-bb"><span class="identifier">signal</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">combiner_type</span><span class="special">&</span> <span class="special">=</span> <span class="identifier">combiner_type</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">group_compare_type</span><span class="special">&</span> <span class="special">=</span> <span class="identifier">group_compare_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="signal.html#id1144764-bb"><span class="special">~</span><span class="identifier">signal</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="signal.html#id1144778-bb">connection management</a></span> + <a class="link" href="connection.html" title="Class connection">connection</a> <a class="link" href="signal.html#id1144786-bb"><span class="identifier">connect</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">slot_type</span><span class="special">&</span><span class="special">,</span> <span class="identifier">connect_position</span> <span class="special">=</span> <span class="identifier">at_back</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="connection.html" title="Class connection">connection</a> <a class="link" href="signal.html#id810355-bb"><span class="identifier">connect</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">group_type</span><span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">slot_type</span><span class="special">&</span><span class="special">,</span> + <span class="identifier">connect_position</span> <span class="special">=</span> <span class="identifier">at_back</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="connection.html" title="Class connection">connection</a> <a class="link" href="signal.html#id810461-bb"><span class="identifier">connect_extended</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">extended_slot_type</span><span class="special">&</span><span class="special">,</span> + <span class="identifier">connect_position</span> <span class="special">=</span> <span class="identifier">at_back</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="connection.html" title="Class connection">connection</a> <a class="link" href="signal.html#id1171229-bb"><span class="identifier">connect_extended</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">group_type</span><span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">extended_slot_type</span><span class="special">&</span><span class="special">,</span> + <span class="identifier">connect_position</span> <span class="special">=</span> <span class="identifier">at_back</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="signal.html#id1070269-bb"><span class="identifier">disconnect</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">group_type</span><span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> S<span class="special">></span> <span class="keyword">void</span> <a class="link" href="signal.html#id1070284-bb"><span class="identifier">disconnect</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">S</span><span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="signal.html#id1070354-bb"><span class="identifier">disconnect_all_slots</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="signal.html#id1139040-bb"><span class="identifier">empty</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="signal.html#id794535-bb"><span class="identifier">num_slots</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="signal.html#id794570-bb">invocation</a></span> + <span class="identifier">result_type</span> <a class="link" href="signal.html#id794578-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">arg</span><span class="special"><</span><span class="number">0</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="identifier">N</span><span class="special">-</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">result_type</span> <a class="link" href="signal.html#id1157981-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">arg</span><span class="special"><</span><span class="number">0</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="identifier">N</span><span class="special">-</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="signal.html#id1067736-bb">combiner access</a></span> + <span class="identifier">combiner_type</span> <a class="link" href="signal.html#id1067739-bb"><span class="identifier">combiner</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="signal.html#id1067758-bb"><span class="identifier">set_combiner</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">combiner_type</span><span class="special">&</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3166432"></a><h2>Description</h2> +<p> + See the <a class="link" href="../../signals2/tutorial.html" title="Tutorial">tutorial</a> + for more information on how to use the signal class. + </p> +<div class="refsect2"> +<a name="id3166450"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Signature</pre> +<p></p> +</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> Combiner <span class="special">=</span> <a class="link" href="optional_last_value.html" title="Class template optional_last_value">boost::signals2::optional_last_value</a><span class="special"><</span><span class="identifier">R</span><span class="special">></span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> Group <span class="special">=</span> <span class="keyword">int</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> GroupCompare <span class="special">=</span> std::less<span class="special"><</span><span class="identifier">Group</span><span class="special">></span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> SlotFunction <span class="special">=</span> <a class="link" href="../function.html" title="Class template function">boost::function</a><span class="special"><</span><span class="identifier">Signature</span><span class="special">></span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> ExtendedSlotFunction <span class="special">=</span> <a class="link" href="../function.html" title="Class template function">boost::function</a><span class="special"><</span><span class="identifier">R</span> <span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">connection</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">TN</span><span class="special">)</span><span class="special">></span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> Mutex <span class="special">=</span> <a class="link" href="mutex.html" title="Class mutex">boost::signals2::mutex</a></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3166734"></a><h3> +<a name="boost.signals2.signaltypes"></a><code class="computeroutput">signal</code> + public + types</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<p> +<span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="link" href="slot.html" title="Class template slot">signals2::slot</a><span class="special"><</span><span class="identifier">R</span> <span class="special">(</span><span class="keyword">const</span> <a class="link" href="connection.html" title="Class connection">connection</a> <span class="special">&</span><span class="special">,</span> <span class="identifier">T1</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">TN</span><span class="special">)</span><span class="special">,</span> <span class="identifier">ExtendedSlotFunction</span><span class="special">></span> <a name="boost.signals2.signal.extended_slot_type"></a><span class="identifier">extended_slot_type</span><span class="special">;</span></p> +<p>Slots of the <code class="computeroutput">extended_slot_type</code> may be connected to the signal using the + <a class="link" href="signal.html#id810457-bb">connect_extended</a> methods. The <code class="computeroutput">extended_slot_type</code> + has an additional <a class="link" href="connection.html" title="Class connection">signals2::connection</a> argument in its signature, + which gives slot functions access to their connection to the signal + invoking them. + </p> +</li> +<li class="listitem"> +<p> +<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">SlotFunction</span><span class="special">::</span><span class="identifier">result_type</span> <a name="boost.signals2.signal.slot_result_type"></a><span class="identifier">slot_result_type</span><span class="special">;</span></p> +<p> + This is the type returned when dereferencing the input iterators passed to the signal's + combiner. + </p> +</li> +<li class="listitem"> +<p> +<span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="boost.signals2.signal.slot_call_iterator"></a><span class="identifier">slot_call_iterator</span><span class="special">;</span></p> +<p> + The input iterator type passed to the combiner when the signal is invoked. + </p> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3166989"></a><h3> +<a name="boost.signals2.signalconstruct-copy-destruct"></a><code class="computeroutput">signal</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="id1088235-bb"></a><span class="identifier">signal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">combiner_type</span><span class="special">&</span> combiner <span class="special">=</span> <span class="identifier">combiner_type</span><span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">group_compare_type</span><span class="special">&</span> compare <span class="special">=</span> <span class="identifier">group_compare_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Initializes the signal to contain no slots, copies the given combiner into internal storage, and stores the given group comparison function object to compare groups.</p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput">this-><a class="link" href="signal.html#id1139040-bb">empty</a>()</code></p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id1144764-bb"></a><span class="special">~</span><span class="identifier">signal</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Disconnects all slots connected to <code class="computeroutput">*this</code>.</p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3167197"></a><h3> +<a name="id1144778-bb"></a><code class="computeroutput">signal</code> connection management</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="id1144782-bb"></a><a class="link" href="connection.html" title="Class connection">connection</a> <a name="id1144786-bb"></a><span class="identifier">connect</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">slot_type</span><span class="special">&</span> slot<span class="special">,</span> <span class="identifier">connect_position</span> at <span class="special">=</span> <span class="identifier">at_back</span><span class="special">)</span><span class="special">;</span> +<a class="link" href="connection.html" title="Class connection">connection</a> <a name="id810355-bb"></a><span class="identifier">connect</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">group_type</span><span class="special">&</span> group<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">slot_type</span><span class="special">&</span> slot<span class="special">,</span> + <span class="identifier">connect_position</span> at <span class="special">=</span> <span class="identifier">at_back</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Connects the signal this to the incoming + slot. If the slot is inactive, i.e., any of the slots's tracked + objects have been destroyed, then the + call to connect is a no-op. If the second version of + <code class="computeroutput">connect</code> is invoked, the + slot is associated with the given group. The <code class="computeroutput">at</code> + parameter specifies where the slot should be connected: + <code class="computeroutput">at_front</code> indicates that the slot will be + connected at the front of the list or group of slots and + <code class="computeroutput">at_back</code> indicates that the slot will be + connected at the back of the list or group of + slots.</p></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A + <code class="computeroutput"><a class="link" href="connection.html" title="Class connection">signals2::connection</a></code> + object that references the newly-created connection between + the signal and the slot; if the slot is inactive, returns a + disconnected connection.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>This routine meets the strong exception guarantee, + where any exception thrown will cause the slot to not be + connected to the signal.</p></td> +</tr> +<tr> +<td><p><span class="term">Complexity:</span></p></td> +<td><p>Constant time when connecting a slot + without a group name or logarithmic in the number of groups + when connecting to a particular + group.</p></td> +</tr> +<tr> +<td><p><span class="term">Notes:</span></p></td> +<td><p>It is unspecified whether connecting a slot while the + signal is calling will result in the slot being called + immediately.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id810457-bb"></a><a class="link" href="connection.html" title="Class connection">connection</a> <a name="id810461-bb"></a><span class="identifier">connect_extended</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">extended_slot_type</span><span class="special">&</span> slot<span class="special">,</span> + <span class="identifier">connect_position</span> at <span class="special">=</span> <span class="identifier">at_back</span><span class="special">)</span><span class="special">;</span> +<a class="link" href="connection.html" title="Class connection">connection</a> <a name="id1171229-bb"></a><span class="identifier">connect_extended</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">group_type</span><span class="special">&</span> group<span class="special">,</span> + <span class="keyword">const</span> <span class="identifier">extended_slot_type</span><span class="special">&</span> slot<span class="special">,</span> + <span class="identifier">connect_position</span> at <span class="special">=</span> <span class="identifier">at_back</span><span class="special">)</span><span class="special">;</span></pre> +<p> + The <code class="computeroutput">connect_extended</code> methods work the same as the <code class="computeroutput"><a class="link" href="signal.html#id1144782-bb">connect</a></code> + methods, except they take slots of type <code class="computeroutput"><a class="link" href="signal.html#boost.signals2.signal.extended_slot_type">extended_slot_type</a></code>. + This is useful if a slot needs to access the connection between it and the + signal invoking it, for example if it wishes to disconnect or block its own connection. + </p> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id1070266-bb"></a><span class="keyword">void</span> <a name="id1070269-bb"></a><span class="identifier">disconnect</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">group_type</span><span class="special">&</span> group<span class="special">)</span><span class="special">;</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> S<span class="special">></span> <span class="keyword">void</span> <a name="id1070284-bb"></a><span class="identifier">disconnect</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">S</span><span class="special">&</span> slot_func<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td> +<p>If the parameter is (convertible to) a + group name, any slots in the given group are + disconnected. Otherwise, any slots equal to the + given slot function + are disconnected. + </p> +<p>Note, the <code class="computeroutput">slot_func</code> + argument should not be an actual <a class="link" href="slot.html" title="Class template slot">signals2::slot</a> + object (which does not even support <code class="computeroutput">operator==</code>), but rather + the functor you wrapped inside a <a class="link" href="slot.html" title="Class template slot">signals2::slot</a> + when you initially made the connection. + </p> +</td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw unless a user destructor or + equality operator <code class="computeroutput">==</code> throws. If either throws, + not all slots may be disconnected.</p></td> +</tr> +<tr> +<td><p><span class="term">Complexity:</span></p></td> +<td><p>If a group is given, O(lg g) + k where + g is the number of groups in the signal and k is the + number of slots in the group. Otherwise, linear in the + number of slots connected to the + signal.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="id1070354-bb"></a><span class="identifier">disconnect_all_slots</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Disconnects all slots connected to the signal.</p></td> +</tr> +<tr> +<td><p><span class="term">Postconditions:</span></p></td> +<td><p><code class="computeroutput">this-><a class="link" href="signal.html#id1139040-bb">empty</a>()</code>.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>If disconnecting a slot causes an exception to be + thrown, not all slots may be disconnected.</p></td> +</tr> +<tr> +<td><p><span class="term">Complexity:</span></p></td> +<td><p>Linear in the number of slots known to the + signal.</p></td> +</tr> +<tr> +<td><p><span class="term">Notes:</span></p></td> +<td><p>May be called at any time within the lifetime of the + signal, including during calls to the signal's slots.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id1139040-bb"></a><span class="identifier">empty</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">true</code> if no slots + are connected to the signal, and + <code class="computeroutput">false</code> otherwise.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +<tr> +<td><p><span class="term">Complexity:</span></p></td> +<td><p>Linear in the number of slots known to the + signal.</p></td> +</tr> +<tr> +<td><p><span class="term">Rationale:</span></p></td> +<td><p>Slots can disconnect at any point in time, + including while those same slots are being invoked. It is + therefore possible that the implementation must search + through a list of disconnected slots to determine if any + slots are still connected.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="id794535-bb"></a><span class="identifier">num_slots</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The number of slots connected to the signal</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +<tr> +<td><p><span class="term">Complexity:</span></p></td> +<td><p>Linear in the number of slots known to the + signal.</p></td> +</tr> +<tr> +<td><p><span class="term">Rationale:</span></p></td> +<td><p>Slots can disconnect at any point in time, + including while those same slots are being invoked. It is + therefore possible that the implementation must search + through a list of disconnected slots to determine how many + slots are still connected.</p></td> +</tr> +</tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3168140"></a><h3> +<a name="id794570-bb"></a><code class="computeroutput">signal</code> invocation</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="id794574-bb"></a><span class="identifier">result_type</span> <a name="id794578-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">arg</span><span class="special"><</span><span class="number">0</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> a1<span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> a2<span class="special">,</span> <span class="special">...</span><span class="special">,</span> + <span class="identifier">arg</span><span class="special"><</span><span class="identifier">N</span><span class="special">-</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> aN<span class="special">)</span><span class="special">;</span> +<span class="identifier">result_type</span> <a name="id1157981-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">arg</span><span class="special"><</span><span class="number">0</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> a1<span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> a2<span class="special">,</span> <span class="special">...</span><span class="special">,</span> + <span class="identifier">arg</span><span class="special"><</span><span class="identifier">N</span><span class="special">-</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> aN<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Invokes the combiner with a + <code class="computeroutput">slot_call_iterator</code> range + [first, last) corresponding to the sequence of calls to the + slots connected to signal + <code class="computeroutput">*this</code>. Dereferencing an + iterator in this range causes a slot call with the given set + of parameters <code class="computeroutput">(a1, a2, ..., + aN)</code>, the result of which is returned from + the iterator dereference operation.</p></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The result returned by the combiner.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>If an exception is thrown by a slot call, or if the + combiner does not dereference any slot past some given slot, + all slots after that slot in the internal list of connected + slots will not be invoked.</p></td> +</tr> +<tr> +<td><p><span class="term">Notes:</span></p></td> +<td> +<p>Only the slots associated with iterators that are + actually dereferenced will be invoked. Multiple dereferences + of the same iterator will not result in multiple slot + invocations, because the return value of the slot will be + cached.</p> +<p>The <code class="computeroutput">const</code> version of + the function call operator will invoke the combiner as + <code class="computeroutput">const</code>, whereas the + non-<code class="computeroutput">const</code> version will + invoke the combiner as + non-<code class="computeroutput">const</code>.</p> +</td> +</tr> +</tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="id3168565"></a><h3> +<a name="id1067736-bb"></a><code class="computeroutput">signal</code> combiner access</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">combiner_type</span> <a name="id1067739-bb"></a><span class="identifier">combiner</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A copy of the stored combiner.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">void</span> <a name="id1067758-bb"></a><span class="identifier">set_combiner</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">combiner_type</span><span class="special">&</span> combiner<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Copies a new combiner into the signal for use with + future signal invocations.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="shared_connection_block.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.signal_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="signal/arg.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/signal/arg.html b/doc/html/boost/signals2/signal/arg.html new file mode 100755 index 0000000000..6604de1684 --- /dev/null +++ b/doc/html/boost/signals2/signal/arg.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template arg</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../signal.html#id3166432" title="Description"> +<link rel="prev" href="../signal.html" title="Class template signal"> +<link rel="next" href="../signal_base.html" title="Class signal_base"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../signal.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../signal.html#id3166432"><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="../signal_base.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.signal.arg"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template arg</span></h2> +<p>boost::signals2::signal::arg</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../signals2/reference.html#header.boost.signals2.signal_hpp" title="Header <boost/signals2/signal.hpp>">boost/signals2/signal.hpp</a>> + +</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">unsigned</span> n<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="arg.html" title="Class template arg">arg</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Tn</span> <a name="boost.signals2.signal.arg.type"></a><span class="identifier">type</span><span class="special">;</span> <span class="comment">// The type of the <a class="link" href="../signal.html" title="Class template signal">signal</a>'s (n+1)th argument</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../signal.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../signal.html#id3166432"><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="../signal_base.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/signal_base.html b/doc/html/boost/signals2/signal_base.html new file mode 100755 index 0000000000..50546e0042 --- /dev/null +++ b/doc/html/boost/signals2/signal_base.html @@ -0,0 +1,66 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class signal_base</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.signal_base_hpp" title="Header <boost/signals2/signal_base.hpp>"> +<link rel="prev" href="signal/arg.html" title="Class template arg"> +<link rel="next" href="keywords/signature_type.html" title="Class template signature_type"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="signal/arg.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.signal_base_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="keywords/signature_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.signal_base"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class signal_base</span></h2> +<p>boost::signals2::signal_base — Base class for signals.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.signal_base_hpp" title="Header <boost/signals2/signal_base.hpp>">boost/signals2/signal_base.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="signal_base.html" title="Class signal_base">signal_base</a> <span class="special">:</span> <span class="keyword">public</span> noncopyable <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// <a class="link" href="signal_base.html#boost.signals2.signal_baseconstruct-copy-destruct">construct/copy/destruct</a></span> + <span class="keyword">virtual</span> <a class="link" href="signal_base.html#id1293945-bb"><span class="special">~</span><span class="identifier">signal_base</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3169061"></a><h2>Description</h2> +<div class="refsect2"> +<a name="id3169065"></a><h3> +<a name="boost.signals2.signal_baseconstruct-copy-destruct"></a><code class="computeroutput">signal_base</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><span class="keyword">virtual</span> <a name="id1293945-bb"></a><span class="special">~</span><span class="identifier">signal_base</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<p>Virtual destructor.</p> +</li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="signal/arg.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.signal_base_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="keywords/signature_type.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/signal_type.html b/doc/html/boost/signals2/signal_type.html new file mode 100755 index 0000000000..e39e173a55 --- /dev/null +++ b/doc/html/boost/signals2/signal_type.html @@ -0,0 +1,111 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template signal_type</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>"> +<link rel="prev" href="keywords/mutex_type.html" title="Class template mutex_type"> +<link rel="next" href="slot.html" title="Class template slot"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="keywords/mutex_type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.signal_type_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="slot.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.signal_type"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template signal_type</span></h2> +<p>boost::signals2::signal_type — Specify a the template type parameters of a <a class="link" href="signal.html" title="Class template signal">boost::signals2::signal</a> using named parameters.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.signal_type_hpp" title="Header <boost/signals2/signal_type.hpp>">boost/signals2/signal_type.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> A0<span class="special">,</span> <span class="keyword">typename</span> A1 <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">void_</span><span class="special">,</span> + <span class="keyword">typename</span> A2 <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">void_</span><span class="special">,</span> + <span class="keyword">typename</span> A3 <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">void_</span><span class="special">,</span> + <span class="keyword">typename</span> A4 <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">void_</span><span class="special">,</span> + <span class="keyword">typename</span> A5 <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">void_</span><span class="special">,</span> + <span class="keyword">typename</span> A6 <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">void_</span><span class="special">></span> +<span class="keyword">class</span> <a class="link" href="signal_type.html" title="Class template signal_type">signal_type</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">implementation</span><span class="special">-</span><span class="identifier">detail</span></em></span> <a name="boost.signals2.signal_type.signature_type"></a><span class="identifier">signature_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">implementation</span><span class="special">-</span><span class="identifier">detail</span></em></span> <a name="boost.signals2.signal_type.combiner_type"></a><span class="identifier">combiner_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">implementation</span><span class="special">-</span><span class="identifier">detail</span></em></span> <a name="boost.signals2.signal_type.group_type"></a><span class="identifier">group_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">implementation</span><span class="special">-</span><span class="identifier">detail</span></em></span> <a name="boost.signals2.signal_type.group_compare_type"></a><span class="identifier">group_compare_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">implementation</span><span class="special">-</span><span class="identifier">detail</span></em></span> <a name="boost.signals2.signal_type.slot_function_type"></a><span class="identifier">slot_function_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">implementation</span><span class="special">-</span><span class="identifier">detail</span></em></span> <a name="boost.signals2.signal_type.extended_slot_function__id787153"></a><span class="identifier">extended_slot_function_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">implementation</span><span class="special">-</span><span class="identifier">detail</span></em></span> <a name="boost.signals2.signal_type.mutex_type"></a><span class="identifier">mutex_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">signal</span><span class="special"><</span><span class="identifier">signature_type</span><span class="special">,</span> <span class="identifier">combiner_type</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">mutex_type</span><span class="special">></span> <a name="boost.signals2.signal_type.type"></a><span class="identifier">type</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3171502"></a><h2>Description</h2> +<p>The <code class="computeroutput">signal_type</code> metafunction employs the Boost.Parameter library to + allow users to specify the template type parameters of a <a class="link" href="signal.html" title="Class template signal">signals2::signal</a> + using named parameters. The resulting signal type is provided through the + <code class="computeroutput">signal_type::type</code> typedef. Named template type parameters + can enhance readability of code, and provide convenience for specifying classes + which have a large number of template parameters. + </p> +<p>The template type parameters may be passed positionally, similarly to passing them + to the <a class="link" href="signal.html" title="Class template signal">signals2::signal</a> class directly. Or, they may be passed as named template parameters + by wrapping them in one of the template keyword classes provided in the + <code class="computeroutput">boost::signals2::keywords</code> namespace. The supported template keywords are: + <a class="link" href="keywords/signature_type.html" title="Class template signature_type">keywords::signature_type</a>, <a class="link" href="keywords/combiner_type.html" title="Class template combiner_type">keywords::combiner_type</a>, + <a class="link" href="keywords/group_type.html" title="Class template group_type">keywords::group_type</a>, <a class="link" href="keywords/group_compare_type.html" title="Class template group_compare_type">keywords::group_compare_type</a>, + <a class="link" href="keywords/slot_function_type.html" title="Class template slot_function_type">keywords::slot_function_type</a>, <a class="link" href="keywords/extended_slot_function__id791201.html" title="Class template extended_slot_function_type">keywords::extended_slot_function_type</a>, + and <a class="link" href="keywords/mutex_type.html" title="Class template mutex_type">keywords::mutex_type</a>. + </p> +<p>The default types for unspecified template type parameters are the same as those for the + <a class="link" href="../signal.html" title="Class template signal">signal</a> class. + </p> +<p> + Named template type parameters are especially convenient when you only wish to change a + few of a signal's template type parameters from their defaults, and the parameters + you wish to change are near the end of the signal's template parameter list. + For example, if you only wish to change the <code class="computeroutput">Mutex</code> template type + parameter of a signal, you might write: + </p> +<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">bs2</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">signals2</span><span class="special">;</span> +<span class="keyword">using</span> <span class="identifier">bs2</span><span class="special">::</span><span class="identifier">keywords</span><span class="special">;</span> +<span class="identifier">bs2</span><span class="special">::</span><span class="identifier">signal_type</span><span class="special"><</span><span class="keyword">void</span> <span class="special">(</span><span class="special">)</span><span class="special">,</span> <span class="identifier">mutex_type</span><span class="special"><</span><span class="identifier">bs2</span><span class="special">::</span><span class="identifier">dummy_mutex</span><span class="special">></span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span> <span class="identifier">sig</span><span class="special">;</span> +</pre> +<p>For comparison, to specify the same type using the signal class directly looks like:</p> +<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">bs2</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">signals2</span><span class="special">;</span> +<span class="identifier">bs2</span><span class="special">::</span><span class="identifier">signal</span> + <span class="special"><</span> + <span class="keyword">void</span> <span class="special">(</span><span class="special">)</span><span class="special">,</span> + <span class="identifier">bs2</span><span class="special">::</span><span class="identifier">optional_last_value</span><span class="special"><</span><span class="keyword">void</span><span class="special">></span><span class="special">,</span> + <span class="keyword">int</span><span class="special">,</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span><span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span><span class="keyword">void</span> <span class="special">(</span><span class="special">)</span><span class="special">></span><span class="special">,</span> + <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span><span class="keyword">void</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">connection</span> <span class="special">&</span><span class="special">)</span><span class="special">></span><span class="special">,</span> + <span class="identifier">bs2</span><span class="special">::</span><span class="identifier">dummy_mutex</span> + <span class="special">></span> <span class="identifier">sig</span><span class="special">;</span> +</pre> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="keywords/mutex_type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.signal_type_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="slot.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/slot.html b/doc/html/boost/signals2/slot.html new file mode 100755 index 0000000000..73562a109a --- /dev/null +++ b/doc/html/boost/signals2/slot.html @@ -0,0 +1,318 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template slot</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.slot_hpp" title="Header <boost/signals2/slot.hpp>"> +<link rel="prev" href="signal_type.html" title="Class template signal_type"> +<link rel="next" href="slot/arg.html" title="Class template arg"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="signal_type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.slot_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="slot/arg.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.slot"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template slot</span></h2> +<p>boost::signals2::slot — Pass slots as function arguments, and associate tracked objects with a slot.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.slot_hpp" title="Header <boost/signals2/slot.hpp>">boost/signals2/slot.hpp</a>> + +</span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Signature<span class="special">,</span> + <span class="keyword">typename</span> SlotFunction <span class="special">=</span> <a class="link" href="../function.html" title="Class template function">boost::function</a><span class="special"><</span><span class="identifier">R</span> <span class="special">(</span><span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">TN</span><span class="special">)</span><span class="special">></span> <span class="special">></span> +<span class="keyword">class</span> <a class="link" href="slot.html" title="Class template slot">slot</a> <span class="special">:</span> <span class="keyword">public</span> <a class="link" href="slot_base.html" title="Class slot_base">boost::signals2::slot_base</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">R</span> <a name="boost.signals2.slot.result_type"></a><span class="identifier">result_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">T1</span> <a name="boost.signals2.slot.argument_type"></a><span class="identifier">argument_type</span><span class="special">;</span> <span class="comment">// Exists iff arity == 1</span> + <span class="keyword">typedef</span> <span class="identifier">T1</span> <a name="boost.signals2.slot.first_argument_type"></a><span class="identifier">first_argument_type</span><span class="special">;</span> <span class="comment">// Exists iff arity == 2</span> + <span class="keyword">typedef</span> <span class="identifier">T2</span> <a name="boost.signals2.slot.second_argument_type"></a><span class="identifier">second_argument_type</span><span class="special">;</span> <span class="comment">// Exists iff arity == 2</span> + <span class="keyword">typedef</span> <span class="identifier">Signature</span> <a name="boost.signals2.slot.signature_type"></a><span class="identifier">signature_type</span><span class="special">;</span> + <span class="keyword">typedef</span> <span class="identifier">SlotFunction</span> <a name="boost.signals2.slot.slot_function_type"></a><span class="identifier">slot_function_type</span><span class="special">;</span> + + <span class="comment">// static constants</span> + <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">arity</span> = <span class="identifier">N</span><span class="special">;</span> <span class="comment">// The number of arguments taken by the slot.</span> + + <span class="comment">// member classes/structs/unions</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">unsigned</span> n<span class="special">></span> + <span class="keyword">class</span> <a class="link" href="slot/arg.html" title="Class template arg">arg</a> <span class="special">{</span> + <span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Tn</span> <a class="link" href="slot/arg.html#boost.signals2.slot.arg.type"><span class="identifier">type</span></a><span class="special">;</span> <span class="comment">// The type of the <a class="link" href="slot.html" title="Class template slot">slot</a>'s (n+1)th argument</span> + <span class="special">}</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="slot.html#boost.signals2.slotconstruct-copy-destruct">construct/copy/destruct</a></span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Slot<span class="special">></span> <a class="link" href="slot.html#id760035-bb"><span class="identifier">slot</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Slot</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> OtherSignature<span class="special">,</span> <span class="keyword">typename</span> OtherSlotFunction<span class="special">></span> + <a class="link" href="slot.html#id1138510-bb"><span class="identifier">slot</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">slot</span><span class="special"><</span><span class="identifier">OtherSignature</span><span class="special">,</span> <span class="identifier">OtherSlotFunction</span><span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Func<span class="special">,</span> <span class="keyword">typename</span> Arg1<span class="special">,</span> <span class="keyword">typename</span> Arg2<span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="keyword">typename</span> ArgN<span class="special">></span> + <a class="link" href="slot.html#id1398383-bb"><span class="identifier">slot</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Func</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Arg1</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Arg2</span> <span class="special">&</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ArgN</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="slot.html#id1070210-bb">invocation</a></span> + <span class="identifier">result_type</span> <a class="link" href="slot.html#id1070218-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">arg</span><span class="special"><</span><span class="number">0</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">_type</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="identifier">N</span><span class="special">-</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">result_type</span> <a class="link" href="slot.html#id1070247-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="identifier">arg</span><span class="special"><</span><span class="number">0</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">_type</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="identifier">N</span><span class="special">-</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="slot.html#id1297974-bb">tracking</a></span> + <span class="identifier">slot</span> <span class="special">&</span> <a class="link" href="slot.html#id1297982-bb"><span class="identifier">track</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">weak_ptr</span><span class="special"><</span><span class="keyword">void</span><span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">slot</span> <span class="special">&</span> <a class="link" href="slot.html#id1141900-bb"><span class="identifier">track</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="signal_base.html" title="Class signal_base">signals2::signal_base</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">slot</span> <span class="special">&</span> <a class="link" href="slot.html#id1149158-bb"><span class="identifier">track</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slot_base.html" title="Class slot_base">signals2::slot_base</a> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ForeignWeakPtr<span class="special">></span> + <span class="identifier">slot</span> <span class="special">&</span> <a class="link" href="slot.html#id1301779-bb"><span class="identifier">track_foreign</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForeignWeakPtr</span> <span class="special">&</span><span class="special">,</span> + <span class="keyword">typename</span> <span class="identifier">weak_ptr_traits</span><span class="special"><</span><span class="identifier">ForeignWeakPtr</span><span class="special">></span><span class="special">::</span><span class="identifier">shared_type</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ForeignSharedPtr<span class="special">></span> + <span class="identifier">slot</span> <span class="special">&</span> <a class="link" href="slot.html#id1301813-bb"><span class="identifier">track_foreign</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForeignSharedPtr</span> <span class="special">&</span><span class="special">,</span> + <span class="keyword">typename</span> <span class="identifier">shared_ptr_traits</span><span class="special"><</span><span class="identifier">ForeignSharedPtr</span><span class="special">></span><span class="special">::</span><span class="identifier">weak_type</span> <span class="special">*</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="slot.html#id1073231-bb">slot function access</a></span> + <span class="identifier">slot_function_type</span> <span class="special">&</span> <a class="link" href="slot.html#id1073239-bb"><span class="identifier">slot_function</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">const</span> <span class="identifier">slot_function_type</span> <span class="special">&</span> <a class="link" href="slot.html#id1140179-bb"><span class="identifier">slot_function</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3173980"></a><h2>Description</h2> +<p>A slot consists of a polymorphic function wrapper (<a class="link" href="../function.html" title="Class template function">boost::function</a> by default) + plus a container of <code class="computeroutput">weak_ptr</code>s which identify the slot's "tracked objects". If any of the + tracked objects expire, the slot will automatically disable itself. That is, the slot's function + call operator will throw an exception instead of forwarding the function call to the slot's + polymorphic function wrapper. Additionally, a slot will automatically lock all the tracked objects + as <code class="computeroutput">shared_ptr</code> during invocation, to prevent any of them from expiring while + the polymorphic function wrapper is being run. + </p> +<p> + The slot constructor will search for <a class="link" href="signal.html" title="Class template signal">signals2::signal</a> and + <a class="link" href="trackable.html" title="Class trackable">signals2::trackable</a> inside incoming function objects and + automatically track them. It does so by applying a visitor + to the incoming functors with <a class="link" href="../visit_each.html" title="Function template visit_each">boost::visit_each</a>. + </p> +<div class="refsect2"> +<a name="id3174048"></a><h3>Template Parameters</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">typename</span> Signature</pre> +<p></p> +</li> +<li class="listitem"><pre class="literallayout"><span class="keyword">typename</span> SlotFunction <span class="special">=</span> <a class="link" href="../function.html" title="Class template function">boost::function</a><span class="special"><</span><span class="identifier">R</span> <span class="special">(</span><span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="identifier">TN</span><span class="special">)</span><span class="special">></span></pre></li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3174152"></a><h3> +<a name="boost.signals2.slotconstruct-copy-destruct"></a><code class="computeroutput">slot</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Slot<span class="special">></span> <a name="id760035-bb"></a><span class="identifier">slot</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Slot</span> <span class="special">&</span> target<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Effects:</span></p></td> +<td> +<p>Initializes the <code class="computeroutput">SlotFunction</code> object in <code class="computeroutput">this</code> + with <code class="computeroutput">target</code>, which may be any + function object with which a + <code class="computeroutput">SlotFunction</code> can be + constructed. + </p> +<p>In this special case where the template type parameter <code class="computeroutput">Slot</code> is + a compatible <a class="link" href="signal.html" title="Class template signal">signals2::signal</a> type, + the signal will automatically be added to the slot's tracked object list. + Otherwise, the slot's tracked object list is initially empty. + </p> +</td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> OtherSignature<span class="special">,</span> <span class="keyword">typename</span> OtherSlotFunction<span class="special">></span> + <a name="id1138510-bb"></a><span class="identifier">slot</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">slot</span><span class="special"><</span><span class="identifier">OtherSignature</span><span class="special">,</span> <span class="identifier">OtherSlotFunction</span><span class="special">></span> <span class="special">&</span> other_slot<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Initializes <code class="computeroutput">this</code> with a copy of + <code class="computeroutput">other_slot</code>'s <code class="computeroutput">OtherSlotFunction</code> object and tracked object list. + </p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Func<span class="special">,</span> <span class="keyword">typename</span> Arg1<span class="special">,</span> <span class="keyword">typename</span> Arg2<span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="keyword">typename</span> ArgN<span class="special">></span> + <a name="id1398383-bb"></a><span class="identifier">slot</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Func</span> <span class="special">&</span> f<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Arg1</span> <span class="special">&</span> a1<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Arg2</span> <span class="special">&</span> a2<span class="special">,</span> <span class="special">...</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ArgN</span> <span class="special">&</span> aN<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Syntactic sugar for <code class="computeroutput">bind()</code> when the constructor is passed more than + one argument. As if: + <code class="computeroutput">slot(boost::bind(f, a1, a2, ..., aN))</code> + </p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3174641"></a><h3> +<a name="id1070210-bb"></a><code class="computeroutput">slot</code> invocation</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="id1070214-bb"></a><span class="identifier">result_type</span> <a name="id1070218-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">arg</span><span class="special"><</span><span class="number">0</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> a1<span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">_type</span> a2<span class="special">,</span> <span class="special">...</span><span class="special">,</span> + <span class="identifier">arg</span><span class="special"><</span><span class="identifier">N</span><span class="special">-</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> aN<span class="special">)</span><span class="special">;</span> +<span class="identifier">result_type</span> <a name="id1070247-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="identifier">arg</span><span class="special"><</span><span class="number">0</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> a1<span class="special">,</span> <span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">_type</span> a2<span class="special">,</span> <span class="special">...</span><span class="special">,</span> + <span class="identifier">arg</span><span class="special"><</span><span class="identifier">N</span><span class="special">-</span><span class="number">1</span><span class="special">></span><span class="special">::</span><span class="identifier">type</span> aN<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Calls the slot's <code class="computeroutput">SlotFunction</code> object. + </p></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>The result returned by the slot's <code class="computeroutput">SlotFunction</code> object.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Any exceptions thrown by the slot's <code class="computeroutput">SlotFunction</code> object. + <a class="link" href="expired_slot.html" title="Class expired_slot">boost::signals2::expired_slot</a> if any object in the tracked object list + has expired.</p></td> +</tr> +<tr> +<td><p><span class="term">Notes:</span></p></td> +<td><p>If you have already used <a class="link" href="slot_base.html#id1149294-bb">lock</a> to insure the + tracked objects are valid, it is slightly more efficient to use the + <a class="link" href="slot.html#id1073235-bb">slot_function</a>() method + and call the slot's <code class="computeroutput">SlotFunction</code> directly.</p></td> +</tr> +</tbody> +</table></div> +</li></ol></div> +</div> +<div class="refsect2"> +<a name="id3175057"></a><h3> +<a name="id1297974-bb"></a><code class="computeroutput">slot</code> tracking</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="id1297978-bb"></a><span class="identifier">slot</span> <span class="special">&</span> <a name="id1297982-bb"></a><span class="identifier">track</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">weak_ptr</span><span class="special"><</span><span class="keyword">void</span><span class="special">></span> <span class="special">&</span> tracked_object<span class="special">)</span><span class="special">;</span> +<span class="identifier">slot</span> <span class="special">&</span> <a name="id1141900-bb"></a><span class="identifier">track</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="signal_base.html" title="Class signal_base">signals2::signal_base</a> <span class="special">&</span> tracked_signal<span class="special">)</span><span class="special">;</span> +<span class="identifier">slot</span> <span class="special">&</span> <a name="id1149158-bb"></a><span class="identifier">track</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="slot_base.html" title="Class slot_base">signals2::slot_base</a> <span class="special">&</span> tracked_slot<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td> +<p> + Adds object(s) to the slot's tracked object list. Should any of the + tracked objects expire, then subsequent attempts to call the slot's <code class="computeroutput">operator()</code> + or <code class="computeroutput">lock()</code> methods will throw an <a class="link" href="expired_slot.html" title="Class expired_slot">signals2::expired_slot</a> exception. + </p> +<p>When tracking a signal, a shared_ptr + internal to the signal class is used for tracking. The signal does not + need to be owned by an external <code class="computeroutput">shared_ptr</code>. + </p> +<p> + In the case of passing another slot as the argument to <code class="computeroutput">track()</code>, + only the objects currently in the other slot's tracked object list are added + to the tracked object list of <code class="computeroutput">this</code>. The other slot object itself + is not tracked. + </p> +</td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">*this</code></p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id1301776-bb"></a><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ForeignWeakPtr<span class="special">></span> + <span class="identifier">slot</span> <span class="special">&</span> <a name="id1301779-bb"></a><span class="identifier">track_foreign</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForeignWeakPtr</span> <span class="special">&</span> tracked_object<span class="special">,</span> + <span class="keyword">typename</span> <span class="identifier">weak_ptr_traits</span><span class="special"><</span><span class="identifier">ForeignWeakPtr</span><span class="special">></span><span class="special">::</span><span class="identifier">shared_type</span> <span class="special">*</span> SFINAE <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ForeignSharedPtr<span class="special">></span> + <span class="identifier">slot</span> <span class="special">&</span> <a name="id1301813-bb"></a><span class="identifier">track_foreign</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForeignSharedPtr</span> <span class="special">&</span> tracked_object<span class="special">,</span> + <span class="keyword">typename</span> <span class="identifier">shared_ptr_traits</span><span class="special"><</span><span class="identifier">ForeignSharedPtr</span><span class="special">></span><span class="special">::</span><span class="identifier">weak_type</span> <span class="special">*</span> SFINAE <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td> +<p> + The <code class="computeroutput">track_foreign</code>() method behaves similarly to calling the <a class="link" href="slot.html#id1297978-bb">track</a>() method + with a boost::shared_ptr or boost::weak_ptr argument. + However, <code class="computeroutput">track_foreign</code> is more flexible in that it will accept <code class="computeroutput">shared_ptr</code> + or <code class="computeroutput">weak_ptr</code> classes from outside of boost (most significantly <code class="computeroutput">std::shared_ptr</code> + or <code class="computeroutput">std::weak_ptr</code>). + </p> +<p> + In order to use a particular <code class="computeroutput">shared_ptr</code> class with this function, a specialization of + boost::signals2::shared_ptr_traits must exist for it. + Also, a specialization of boost::signals2::weak_ptr_traits must + be provided for its corresponding <code class="computeroutput">weak_ptr</code> class. + The <code class="computeroutput">shared_ptr_traits</code> specialization must include a <code class="computeroutput">weak_type</code> + member typedef which specifies the + corresponding <code class="computeroutput">weak_ptr</code> type of the <code class="computeroutput">shared_ptr</code> class. + Similarly, the <code class="computeroutput">weak_ptr_traits</code> specialization must include a <code class="computeroutput">shared_type</code> + member typedef which specifies the corresponding <code class="computeroutput">shared_ptr</code> type of the + <code class="computeroutput">weak_ptr</code> class. Specializations + for <code class="computeroutput">std::shared_ptr</code> and <code class="computeroutput">std::weak_ptr</code> are already provided by the signals2 library. + For other <code class="computeroutput">shared_ptr</code> classes, you must provide the specializations. + </p> +<p>The second argument "SFINAE" may be ignored, it is used to resolve the overload between + either <code class="computeroutput">shared_ptr</code> or <code class="computeroutput">weak_ptr</code> objects passed in as the first argument. + </p> +</td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">*this</code></p></td> +</tr> +</tbody> +</table></div> +</li> +</ol></div> +</div> +<div class="refsect2"> +<a name="id3175768"></a><h3> +<a name="id1073231-bb"></a><code class="computeroutput">slot</code> slot function access</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +<pre class="literallayout"><a name="id1073235-bb"></a><span class="identifier">slot_function_type</span> <span class="special">&</span> <a name="id1073239-bb"></a><span class="identifier">slot_function</span><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="keyword">const</span> <span class="identifier">slot_function_type</span> <span class="special">&</span> <a name="id1140179-bb"></a><span class="identifier">slot_function</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p>A reference to the slot's underlying SlotFunction object.</p></td> +</tr></tbody> +</table></div> +</li></ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="signal_type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.slot_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="slot/arg.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/slot/arg.html b/doc/html/boost/signals2/slot/arg.html new file mode 100755 index 0000000000..7c3aafdc76 --- /dev/null +++ b/doc/html/boost/signals2/slot/arg.html @@ -0,0 +1,54 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class template arg</title> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../slot.html#id3173980" title="Description"> +<link rel="prev" href="../slot.html" title="Class template slot"> +<link rel="next" href="../slot_base.html" title="Class slot_base"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> +<td align="center"><a href="../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../slot.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../slot.html#id3173980"><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="../slot_base.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.slot.arg"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class template arg</span></h2> +<p>boost::signals2::slot::arg</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../../signals2/reference.html#header.boost.signals2.slot_hpp" title="Header <boost/signals2/slot.hpp>">boost/signals2/slot.hpp</a>> + +</span> +<span class="keyword">template</span><span class="special"><</span><span class="keyword">unsigned</span> n<span class="special">></span> +<span class="keyword">class</span> <a class="link" href="arg.html" title="Class template arg">arg</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">Tn</span> <a name="boost.signals2.slot.arg.type"></a><span class="identifier">type</span><span class="special">;</span> <span class="comment">// The type of the <a class="link" href="../slot.html" title="Class template slot">slot</a>'s (n+1)th argument</span> +<span class="special">}</span><span class="special">;</span></pre></div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="../slot.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../slot.html#id3173980"><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="../slot_base.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/slot_base.html b/doc/html/boost/signals2/slot_base.html new file mode 100755 index 0000000000..9a6e56af3e --- /dev/null +++ b/doc/html/boost/signals2/slot_base.html @@ -0,0 +1,95 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class slot_base</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.slot_base_hpp" title="Header <boost/signals2/slot_base.hpp>"> +<link rel="prev" href="slot/arg.html" title="Class template arg"> +<link rel="next" href="expired_slot.html" title="Class expired_slot"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="slot/arg.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.slot_base_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="expired_slot.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.slot_base"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class slot_base</span></h2> +<p>boost::signals2::slot_base — Base class for slots.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.slot_base_hpp" title="Header <boost/signals2/slot_base.hpp>">boost/signals2/slot_base.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="slot_base.html" title="Class slot_base">slot_base</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// types</span> + <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="emphasis"><em><span class="identifier">implementation</span><span class="special">-</span><span class="identifier">detail</span></em></span><span class="special">></span> <a name="boost.signals2.slot_base.locked_container_type"></a><span class="identifier">locked_container_type</span><span class="special">;</span> + + <span class="comment">// <a class="link" href="slot_base.html#id804890-bb">tracking</a></span> + <span class="keyword">bool</span> <a class="link" href="slot_base.html#id804894-bb"><span class="identifier">expired</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">locked_container_type</span> <a class="link" href="slot_base.html#id1149294-bb"><span class="identifier">lock</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3176342"></a><h2>Description</h2> +<p></p> +<div class="refsect2"> +<a name="id3176348"></a><h3> +<a name="id804890-bb"></a><code class="computeroutput">slot_base</code> tracking</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id804894-bb"></a><span class="identifier">expired</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">true</code> if any tracked object has expired.</p></td> +</tr></tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><span class="identifier">locked_container_type</span> <a name="id1149294-bb"></a><span class="identifier">lock</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td>A container holding <code class="computeroutput">shared_ptr</code>s to each of the slot's tracked objects. As long + as the returned container is kept in scope, none of the slot's tracked objects can expire.</td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td> +<a class="link" href="expired_slot.html" title="Class expired_slot">expired_slot</a> if any of the slot's tracked objects have expired.</td> +</tr> +</tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="slot/arg.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.slot_base_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="expired_slot.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/doc/html/boost/signals2/trackable.html b/doc/html/boost/signals2/trackable.html new file mode 100755 index 0000000000..70e8c60833 --- /dev/null +++ b/doc/html/boost/signals2/trackable.html @@ -0,0 +1,170 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Class trackable</title> +<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../signals2/reference.html#header.boost.signals2.trackable_hpp" title="Header <boost/signals2/trackable.hpp>"> +<link rel="prev" href="expired_slot.html" title="Class expired_slot"> +<link rel="next" href="../../signals2/thread-safety.html" title="Thread-Safety"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table cellpadding="2" width="100%"><tr> +<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> +<td align="center"><a href="../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> +<td align="center"><a href="../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="expired_slot.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.trackable_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="../../signals2/thread-safety.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="refentry"> +<a name="boost.signals2.trackable"></a><div class="titlepage"></div> +<div class="refnamediv"> +<h2><span class="refentrytitle">Class trackable</span></h2> +<p>boost::signals2::trackable — Provided to ease porting for code using the boost::signals::trackable class from + the original Boost.Signals library.</p> +</div> +<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: <<a class="link" href="../../signals2/reference.html#header.boost.signals2.trackable_hpp" title="Header <boost/signals2/trackable.hpp>">boost/signals2/trackable.hpp</a>> + +</span> +<span class="keyword">class</span> <a class="link" href="trackable.html" title="Class trackable">trackable</a> <span class="special">{</span> +<span class="keyword">public</span><span class="special">:</span> + <span class="comment">// <a class="link" href="trackable.html#boost.signals2.trackableconstruct-copy-destruct">construct/copy/destruct</a></span> + <a class="link" href="trackable.html#id792857-bb"><span class="identifier">trackable</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="trackable.html#id789608-bb"><span class="identifier">trackable</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="trackable.html" title="Class trackable">trackable</a><span class="special">&</span><span class="special">)</span><span class="special">;</span> + trackable& <a class="link" href="trackable.html#id789652-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="trackable.html" title="Class trackable">trackable</a><span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="trackable.html#id789639-bb"><span class="special">~</span><span class="identifier">trackable</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span> +<span class="special">}</span><span class="special">;</span></pre></div> +<div class="refsect1"> +<a name="id3177006"></a><h2>Description</h2> +<p>Use of the <code class="computeroutput">trackable</code> class is not recommended + for new code. The <code class="computeroutput">trackable</code> class is not thread-safe + since <code class="computeroutput">trackable</code> objects disconnect their associated + connections in the <code class="computeroutput">trackable</code> destructor. + Since the <code class="computeroutput">trackable</code> destructor is not run until + after the destructors of any derived classes have completed, + that leaves open a window where a partially destructed + object can still have active connections. + </p> +<p> + The preferred method of automatic connection management + with Boost.Signals2 is to manage the lifetime of + tracked objects with <code class="computeroutput">shared_ptr</code>s and + to use the <a class="link" href="slot.html#id1297978-bb">signals2::slot::track</a> + method to track their lifetimes.</p> +<p>The <code class="computeroutput">trackable</code> class provides automatic + disconnection of signals and slots when objects bound in + slots (via pointer or reference) are destroyed. + <code class="computeroutput">trackable</code> class may only be used as a public + base class for some other class; when used as such, that + class may be bound to function objects used as part of + slots. The manner in which a <code class="computeroutput">trackable</code> object + tracks the set of signal-slot connections it is a part of is + unspecified.</p> +<p>The actual use of <code class="computeroutput">trackable</code> is contingent + on the presence of appropriate + <a class="link" href="../visit_each.html" title="Function template visit_each">visit_each</a> overloads for any + type that may contain pointers or references to trackable + objects.</p> +<div class="refsect2"> +<a name="id3177118"></a><h3> +<a name="boost.signals2.trackableconstruct-copy-destruct"></a><code class="computeroutput">trackable</code> + public + construct/copy/destruct</h3> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> +<pre class="literallayout"><a name="id792857-bb"></a><span class="identifier">trackable</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Sets the list of connected slots to empty.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id789608-bb"></a><span class="identifier">trackable</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="trackable.html" title="Class trackable">trackable</a><span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Sets the list of connected slots to empty.</p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +<tr> +<td><p><span class="term">Rationale:</span></p></td> +<td><p>Signal-slot connections can only be created via calls to an explicit connect method, and therefore cannot be created here when trackable objects are copied.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout">trackable& <a name="id789652-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="trackable.html" title="Class trackable">trackable</a><span class="special">&</span> other<span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Sets the list of connected slots to empty.</p></td> +</tr> +<tr> +<td><p><span class="term">Returns:</span></p></td> +<td><p><code class="computeroutput">*this</code></p></td> +</tr> +<tr> +<td><p><span class="term">Throws:</span></p></td> +<td><p>Will not throw.</p></td> +</tr> +<tr> +<td><p><span class="term">Rationale:</span></p></td> +<td><p>Signal-slot connections can only be created via calls to an explicit connect method, and therefore cannot be created here when trackable objects are copied.</p></td> +</tr> +</tbody> +</table></div> +</li> +<li class="listitem"> +<pre class="literallayout"><a name="id789639-bb"></a><span class="special">~</span><span class="identifier">trackable</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term">Effects:</span></p></td> +<td><p>Disconnects all signal/slot connections that + contain a pointer or reference to this trackable object that + can be found by + <a class="link" href="../visit_each.html" title="Function template visit_each">visit_each</a>.</p></td> +</tr></tbody> +</table></div> +</li> +</ol></div> +</div> +</div> +</div> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> +<td align="left"></td> +<td align="right"><div class="copyright-footer">Copyright © 2001-2004 Douglas Gregor<br>Copyright © 2007-2009 Frank Mori Hess<p>Distributed under the Boost + Software License, Version 1.0. (See accompanying file + <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> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav"> +<a accesskey="p" href="expired_slot.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../signals2/reference.html#header.boost.signals2.trackable_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="../../signals2/thread-safety.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> |