<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libsigc++: sigc::connection Struct Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.2 --> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"> <ul> <li><a class="el" href="namespacesigc.html">sigc</a> </li> <li><a class="el" href="structsigc_1_1connection.html">connection</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> </div> <div class="headertitle"> <h1>sigc::connection Struct Reference<br/> <small> [<a class="el" href="group__signal.html">Signals</a>]</small> </h1> </div> </div> <div class="contents"> <!-- doxytag: class="sigc::connection" --> <p>Convinience class for safe disconnection. <a href="#_details">More...</a></p> <p><code>#include <sigc++/connection.h></code></p> <p><a href="structsigc_1_1connection-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a9b74451c9a6a53bcc704a879f088cc7d">connection</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs an empty connection object. <a href="#a9b74451c9a6a53bcc704a879f088cc7d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#ad13d5e3331cc9b1494e0edb8fa37fdba">connection</a> (const <a class="el" href="structsigc_1_1connection.html">connection</a>& c)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs a connection object copying an existing one. <a href="#ad13d5e3331cc9b1494e0edb8fa37fdba"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T_slot > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a2c59699f1f6aefa74a387d62a9a85e68">connection</a> (const <a class="el" href="structsigc_1_1slot__iterator.html">slot_iterator</a>< T_slot >& it)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs a connection object from a slot list iterator. <a href="#a2c59699f1f6aefa74a387d62a9a85e68"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a124709de26781e5ffcf8bbb5dcd621ed">connection</a> (<a class="el" href="classsigc_1_1slot__base.html">slot_base</a>& sl)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs a connection object from a slot object. <a href="#a124709de26781e5ffcf8bbb5dcd621ed"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsigc_1_1connection.html">connection</a>& </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a016094b53bafdc9ce593febb68cb00a5">operator=</a> (const <a class="el" href="structsigc_1_1connection.html">connection</a>& c)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Overrides this connection object copying another one. <a href="#a016094b53bafdc9ce593febb68cb00a5"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T_slot > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structsigc_1_1connection.html">connection</a>& </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a4ac3b12c4c55463166189db98701999d">operator=</a> (const <a class="el" href="structsigc_1_1slot__iterator.html">slot_iterator</a>< T_slot >& it)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Overrides this connection object with another slot list iterator. <a href="#a4ac3b12c4c55463166189db98701999d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a95ddcc6d1009adda4f2cc19cf246d2c7">empty</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns whether the connection is still active. <a href="#a95ddcc6d1009adda4f2cc19cf246d2c7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a86fcc7064a64aa15528d454b7f078225">connected</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns whether the connection is still active. <a href="#a86fcc7064a64aa15528d454b7f078225"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a2c8ce2977a9e681d06c594ad90b41098">blocked</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns whether the connection is blocked. <a href="#a2c8ce2977a9e681d06c594ad90b41098"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a6b09ee3010464b22abb3269935afcc49">block</a> (bool should_block=true)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets or unsets the blocking state of this connection. <a href="#a6b09ee3010464b22abb3269935afcc49"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#aef87f355a73d50e8e54228a6fcbd1c6e">unblock</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unsets the blocking state of this connection. <a href="#aef87f355a73d50e8e54228a6fcbd1c6e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0452bd182a61650d14a9664d6297ed1b"></a><!-- doxytag: member="sigc::connection::disconnect" ref="a0452bd182a61650d14a9664d6297ed1b" args="()" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a0452bd182a61650d14a9664d6297ed1b">disconnect</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Disconnects the referred slot. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#a67441b54b559cb1f84df9293dc0f5787">operator bool</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns whether the connection is still active. <a href="#a67441b54b559cb1f84df9293dc0f5787"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void* </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1connection.html#ad45fe90d68fe295e76e130b070e97070">notify</a> (void* data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Callback that is executed when the referred slot is destroyed. <a href="#ad45fe90d68fe295e76e130b070e97070"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Convinience class for safe disconnection. </p> <p>Iterators must not be used beyond the lifetime of the list they work on. A connection object can be created from a slot list iterator and may safely be used to disconnect the referred slot at any time (<a class="el" href="structsigc_1_1connection.html#a0452bd182a61650d14a9664d6297ed1b" title="Disconnects the referred slot.">disconnect()</a>). If the slot has already been destroyed, <a class="el" href="structsigc_1_1connection.html#a0452bd182a61650d14a9664d6297ed1b" title="Disconnects the referred slot.">disconnect()</a> does nothing. <a class="el" href="structsigc_1_1connection.html#a95ddcc6d1009adda4f2cc19cf246d2c7" title="Returns whether the connection is still active.">empty()</a> or operator bool() can be used to test whether the connection is still active. The connection can be blocked (<a class="el" href="structsigc_1_1connection.html#a6b09ee3010464b22abb3269935afcc49" title="Sets or unsets the blocking state of this connection.">block()</a>, <a class="el" href="structsigc_1_1connection.html#aef87f355a73d50e8e54228a6fcbd1c6e" title="Unsets the blocking state of this connection.">unblock()</a>).</p> <p>This is possible because the connection object gets notified when the referred slot dies (<a class="el" href="structsigc_1_1connection.html#ad45fe90d68fe295e76e130b070e97070" title="Callback that is executed when the referred slot is destroyed.">notify()</a>). </p> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a9b74451c9a6a53bcc704a879f088cc7d"></a><!-- doxytag: member="sigc::connection::connection" ref="a9b74451c9a6a53bcc704a879f088cc7d" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">sigc::connection::connection </td> <td>(</td> <td class="paramname"> )</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Constructs an empty connection object. </p> </div> </div> <a class="anchor" id="ad13d5e3331cc9b1494e0edb8fa37fdba"></a><!-- doxytag: member="sigc::connection::connection" ref="ad13d5e3331cc9b1494e0edb8fa37fdba" args="(const connection &c)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">sigc::connection::connection </td> <td>(</td> <td class="paramtype">const <a class="el" href="structsigc_1_1connection.html">connection</a>& </td> <td class="paramname"> <em>c</em> )</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Constructs a connection object copying an existing one. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">c</td><td>The connection object to make a copy from. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a2c59699f1f6aefa74a387d62a9a85e68"></a><!-- doxytag: member="sigc::connection::connection" ref="a2c59699f1f6aefa74a387d62a9a85e68" args="(const slot_iterator< T_slot > &it)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_slot > </div> <table class="memname"> <tr> <td class="memname">sigc::connection::connection </td> <td>(</td> <td class="paramtype">const <a class="el" href="structsigc_1_1slot__iterator.html">slot_iterator</a>< T_slot >& </td> <td class="paramname"> <em>it</em> )</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Constructs a connection object from a slot list iterator. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">it</td><td>The slot list iterator to take the slot from. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a124709de26781e5ffcf8bbb5dcd621ed"></a><!-- doxytag: member="sigc::connection::connection" ref="a124709de26781e5ffcf8bbb5dcd621ed" args="(slot_base &sl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">sigc::connection::connection </td> <td>(</td> <td class="paramtype"><a class="el" href="classsigc_1_1slot__base.html">slot_base</a>& </td> <td class="paramname"> <em>sl</em> )</td> <td><code> [explicit]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Constructs a connection object from a slot object. </p> <p>This is only useful if you create your own slot list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sl</td><td>The slot to operate on. </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a6b09ee3010464b22abb3269935afcc49"></a><!-- doxytag: member="sigc::connection::block" ref="a6b09ee3010464b22abb3269935afcc49" args="(bool should_block=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool sigc::connection::block </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>should_block</em> = <code>true</code> )</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Sets or unsets the blocking state of this connection. </p> <p>See <a class="el" href="classsigc_1_1slot__base.html#a69042c2e2b0e5449fbf8203e862192a7" title="Sets the blocking state.">slot_base::block()</a> for details. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">should_block</td><td>Indicates whether the blocking state should be set or unset. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if the connection has been in blocking state before. </dd></dl> </div> </div> <a class="anchor" id="a2c8ce2977a9e681d06c594ad90b41098"></a><!-- doxytag: member="sigc::connection::blocked" ref="a2c8ce2977a9e681d06c594ad90b41098" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool sigc::connection::blocked </td> <td>(</td> <td class="paramname"> )</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns whether the connection is blocked. </p> <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if the connection is blocked. </dd></dl> </div> </div> <a class="anchor" id="a86fcc7064a64aa15528d454b7f078225"></a><!-- doxytag: member="sigc::connection::connected" ref="a86fcc7064a64aa15528d454b7f078225" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool sigc::connection::connected </td> <td>(</td> <td class="paramname"> )</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns whether the connection is still active. </p> <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if the connection is still active. </dd></dl> </div> </div> <a class="anchor" id="a95ddcc6d1009adda4f2cc19cf246d2c7"></a><!-- doxytag: member="sigc::connection::empty" ref="a95ddcc6d1009adda4f2cc19cf246d2c7" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool sigc::connection::empty </td> <td>(</td> <td class="paramname"> )</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns whether the connection is still active. </p> <dl class="return"><dt><b>Returns:</b></dt><dd><code>false</code> if the connection is still active. </dd></dl> </div> </div> <a class="anchor" id="ad45fe90d68fe295e76e130b070e97070"></a><!-- doxytag: member="sigc::connection::notify" ref="ad45fe90d68fe295e76e130b070e97070" args="(void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void* sigc::connection::notify </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>data</em> )</td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Callback that is executed when the referred slot is destroyed. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">d</td><td>The connection object notified (<code>this</code>). </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a67441b54b559cb1f84df9293dc0f5787"></a><!-- doxytag: member="sigc::connection::operator bool" ref="a67441b54b559cb1f84df9293dc0f5787" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">sigc::connection::operator bool </td> <td>(</td> <td class="paramname"> )</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns whether the connection is still active. </p> <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if the connection is still active. </dd></dl> </div> </div> <a class="anchor" id="a4ac3b12c4c55463166189db98701999d"></a><!-- doxytag: member="sigc::connection::operator=" ref="a4ac3b12c4c55463166189db98701999d" args="(const slot_iterator< T_slot > &it)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_slot > </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="structsigc_1_1connection.html">connection</a>& sigc::connection::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structsigc_1_1slot__iterator.html">slot_iterator</a>< T_slot >& </td> <td class="paramname"> <em>it</em> )</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Overrides this connection object with another slot list iterator. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">it</td><td>The new slot list iterator to take the slot from. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a016094b53bafdc9ce593febb68cb00a5"></a><!-- doxytag: member="sigc::connection::operator=" ref="a016094b53bafdc9ce593febb68cb00a5" args="(const connection &c)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structsigc_1_1connection.html">connection</a>& sigc::connection::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structsigc_1_1connection.html">connection</a>& </td> <td class="paramname"> <em>c</em> )</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Overrides this connection object copying another one. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">c</td><td>The connection object to make a copy from. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="aef87f355a73d50e8e54228a6fcbd1c6e"></a><!-- doxytag: member="sigc::connection::unblock" ref="aef87f355a73d50e8e54228a6fcbd1c6e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool sigc::connection::unblock </td> <td>(</td> <td class="paramname"> )</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Unsets the blocking state of this connection. </p> <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if the connection has been in blocking state before. </dd></dl> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Mar 8 2011 11:44:40 for libsigc++ by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address> </body> </html>