1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.9.1"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>libsigc++: sigc::slot_base Class Reference</title>
9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <link href="doxygen.css" rel="stylesheet" type="text/css" />
13 <link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
16 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
18 <table cellspacing="0" cellpadding="0">
20 <tr style="height: 56px;">
21 <td id="projectalign" style="padding-left: 0.5em;">
22 <div id="projectname">libsigc++
23  <span id="projectnumber">2.10.8</span>
30 <!-- end header part -->
31 <!-- Generated by Doxygen 1.9.1 -->
32 <script type="text/javascript" src="menudata.js"></script>
33 <script type="text/javascript" src="menu.js"></script>
34 <script type="text/javascript">
35 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
37 initMenu('',false,false,'search.php','Search');
39 /* @license-end */</script>
40 <div id="main-nav"></div>
41 <div id="nav-path" class="navpath">
43 <li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="classsigc_1_1slot__base.html">slot_base</a></li> </ul>
48 <a href="#pub-types">Public Types</a> |
49 <a href="#pub-methods">Public Member Functions</a> |
50 <a href="#pub-attribs">Public Attributes</a> |
51 <a href="classsigc_1_1slot__base-members.html">List of all members</a> </div>
52 <div class="headertitle">
53 <div class="title">sigc::slot_base Class Reference<div class="ingroups"><a class="el" href="group__sigcfunctors.html">Functors</a> » <a class="el" href="group__slot.html">Slots</a></div></div> </div>
55 <div class="contents">
57 <p>Base type for slots.
58 <a href="classsigc_1_1slot__base.html#details">More...</a></p>
60 <p><code>#include <sigc++/functors/slot_base.h></code></p>
61 <div class="dynheader">
62 Inheritance diagram for sigc::slot_base:</div>
63 <div class="dyncontent">
64 <div class="center"><img src="classsigc_1_1slot__base__inherit__graph.png" border="0" usemap="#asigc_1_1slot__base_inherit__map" alt="Inheritance graph"/></div>
65 <map name="asigc_1_1slot__base_inherit__map" id="asigc_1_1slot__base_inherit__map">
66 <area shape="rect" title="Base type for slots." alt="" coords="193,389,312,415"/>
67 <area shape="rect" href="classsigc_1_1slot7.html" title=" " alt="" coords="374,23,535,79"/>
68 <area shape="rect" href="classsigc_1_1slot0.html" title="Converts an arbitrary functor to a unified type which is opaque." alt="" coords="369,126,541,153"/>
69 <area shape="rect" href="classsigc_1_1slot1.html" title="Converts an arbitrary functor to a unified type which is opaque." alt="" coords="374,195,535,236"/>
70 <area shape="rect" href="classsigc_1_1slot2.html" title="Converts an arbitrary functor to a unified type which is opaque." alt="" coords="374,272,535,313"/>
71 <area shape="rect" href="classsigc_1_1slot3.html" title="Converts an arbitrary functor to a unified type which is opaque." alt="" coords="360,344,549,385"/>
72 <area shape="rect" href="classsigc_1_1slot4.html" title="Converts an arbitrary functor to a unified type which is opaque." alt="" coords="365,410,544,466"/>
73 <area shape="rect" href="classsigc_1_1slot5.html" title="Converts an arbitrary functor to a unified type which is opaque." alt="" coords="365,490,544,546"/>
74 <area shape="rect" href="classsigc_1_1slot6.html" title="Converts an arbitrary functor to a unified type which is opaque." alt="" coords="360,570,549,626"/>
75 <area shape="rect" href="classsigc_1_1slot7.html" title="Converts an arbitrary functor to a unified type which is opaque." alt="" coords="365,651,544,721"/>
76 <area shape="rect" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html" title="Converts an arbitrary functor to a unified type which is opaque." alt="" coords="380,745,529,787"/>
77 <area shape="rect" href="structsigc_1_1functor__base.html" title="A hint to the compiler." alt="" coords="5,389,145,415"/>
78 <area shape="rect" href="classsigc_1_1slot.html" title="Convenience wrapper for the numbered sigc::slot# templates." alt="" coords="615,5,793,76"/>
79 <area shape="rect" href="classsigc_1_1slot_3_01T__return_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" title="Convenience wrapper for the numbered sigc::slot0 template." alt="" coords="627,101,781,157"/>
80 <area shape="rect" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" title="Convenience wrapper for the numbered sigc::slot1 template." alt="" coords="627,181,781,237"/>
81 <area shape="rect" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01nil_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" title="Convenience wrapper for the numbered sigc::slot2 template." alt="" coords="627,261,781,317"/>
82 <area shape="rect" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01nil_00_01nil_00_01nil_00_01nil_01_4.html" title="Convenience wrapper for the numbered sigc::slot3 template." alt="" coords="615,341,793,397"/>
83 <area shape="rect" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01nil_00_01nil_00_01nil_01_4.html" title="Convenience wrapper for the numbered sigc::slot4 template." alt="" coords="615,421,793,477"/>
84 <area shape="rect" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01nil_00_01nil_01_4.html" title="Convenience wrapper for the numbered sigc::slot5 template." alt="" coords="611,501,797,557"/>
85 <area shape="rect" href="classsigc_1_1slot_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00_01T__arg6_00_01nil_01_4.html" title="Convenience wrapper for the numbered sigc::slot6 template." alt="" coords="597,581,811,637"/>
87 <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
88 <table class="memberdecls">
89 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
90 Public Types</h2></td></tr>
91 <tr class="memitem:a7e1a0c2fe43a42187810e8997abeb341"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structsigc_1_1trackable.html#a3338954d7565534bd945290b798e13ed">trackable::func_destroy_notify</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a7e1a0c2fe43a42187810e8997abeb341">func_destroy_notify</a></td></tr>
92 <tr class="separator:a7e1a0c2fe43a42187810e8997abeb341"><td class="memSeparator" colspan="2"> </td></tr>
93 </table><table class="memberdecls">
94 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
95 Public Member Functions</h2></td></tr>
96 <tr class="memitem:a182d5db71ef371838c73bcf1c135cd9a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a182d5db71ef371838c73bcf1c135cd9a">slot_base</a> () noexcept</td></tr>
97 <tr class="memdesc:a182d5db71ef371838c73bcf1c135cd9a"><td class="mdescLeft"> </td><td class="mdescRight">Constructs an empty slot. <a href="classsigc_1_1slot__base.html#a182d5db71ef371838c73bcf1c135cd9a">More...</a><br /></td></tr>
98 <tr class="separator:a182d5db71ef371838c73bcf1c135cd9a"><td class="memSeparator" colspan="2"> </td></tr>
99 <tr class="memitem:aadcbb54832b5207bddf89ac5433b531a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#aadcbb54832b5207bddf89ac5433b531a">slot_base</a> (const <a class="el" href="classsigc_1_1slot__base.html">slot_base</a> & src)</td></tr>
100 <tr class="memdesc:aadcbb54832b5207bddf89ac5433b531a"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a slot, copying an existing one. <a href="classsigc_1_1slot__base.html#aadcbb54832b5207bddf89ac5433b531a">More...</a><br /></td></tr>
101 <tr class="separator:aadcbb54832b5207bddf89ac5433b531a"><td class="memSeparator" colspan="2"> </td></tr>
102 <tr class="memitem:a5fbc2bf38a0d9ebcbe13d578d2b3d5a1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a5fbc2bf38a0d9ebcbe13d578d2b3d5a1">slot_base</a> (rep_type * rep) noexcept</td></tr>
103 <tr class="memdesc:a5fbc2bf38a0d9ebcbe13d578d2b3d5a1"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a slot from an existing slot_rep object. <a href="classsigc_1_1slot__base.html#a5fbc2bf38a0d9ebcbe13d578d2b3d5a1">More...</a><br /></td></tr>
104 <tr class="separator:a5fbc2bf38a0d9ebcbe13d578d2b3d5a1"><td class="memSeparator" colspan="2"> </td></tr>
105 <tr class="memitem:ad1fee67a5885e424c275ad0f48fc81b1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#ad1fee67a5885e424c275ad0f48fc81b1">slot_base</a> (<a class="el" href="classsigc_1_1slot__base.html">slot_base</a> && src)</td></tr>
106 <tr class="memdesc:ad1fee67a5885e424c275ad0f48fc81b1"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a slot, moving an existing one. <a href="classsigc_1_1slot__base.html#ad1fee67a5885e424c275ad0f48fc81b1">More...</a><br /></td></tr>
107 <tr class="separator:ad1fee67a5885e424c275ad0f48fc81b1"><td class="memSeparator" colspan="2"> </td></tr>
108 <tr class="memitem:a75c18c50860f63fb020fc2953576ea57"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a75c18c50860f63fb020fc2953576ea57">~slot_base</a> ()</td></tr>
109 <tr class="separator:a75c18c50860f63fb020fc2953576ea57"><td class="memSeparator" colspan="2"> </td></tr>
110 <tr class="memitem:a8e37cc8f4b57898a288680e59bea2694"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a8e37cc8f4b57898a288680e59bea2694">add_destroy_notify_callback</a> (void *<a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01635.html#a4a0b2b9455f1e2025d77ba49b3863e33">data</a>, <a class="el" href="classsigc_1_1slot__base.html#a7e1a0c2fe43a42187810e8997abeb341">func_destroy_notify</a> func) const</td></tr>
111 <tr class="memdesc:a8e37cc8f4b57898a288680e59bea2694"><td class="mdescLeft"> </td><td class="mdescRight">Add a callback that is executed (notified) when the slot is detroyed. <a href="classsigc_1_1slot__base.html#a8e37cc8f4b57898a288680e59bea2694">More...</a><br /></td></tr>
112 <tr class="separator:a8e37cc8f4b57898a288680e59bea2694"><td class="memSeparator" colspan="2"> </td></tr>
113 <tr class="memitem:a657a8473164c963a5ca4828c88121bb9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a657a8473164c963a5ca4828c88121bb9">block</a> (bool should_block=true) noexcept</td></tr>
114 <tr class="memdesc:a657a8473164c963a5ca4828c88121bb9"><td class="mdescLeft"> </td><td class="mdescRight">Sets the blocking state. <a href="classsigc_1_1slot__base.html#a657a8473164c963a5ca4828c88121bb9">More...</a><br /></td></tr>
115 <tr class="separator:a657a8473164c963a5ca4828c88121bb9"><td class="memSeparator" colspan="2"> </td></tr>
116 <tr class="memitem:a2f266b6147c4a6bbc5b68994d2dc1517"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a2f266b6147c4a6bbc5b68994d2dc1517">blocked</a> () const noexcept</td></tr>
117 <tr class="memdesc:a2f266b6147c4a6bbc5b68994d2dc1517"><td class="mdescLeft"> </td><td class="mdescRight">Returns whether the slot is blocked. <a href="classsigc_1_1slot__base.html#a2f266b6147c4a6bbc5b68994d2dc1517">More...</a><br /></td></tr>
118 <tr class="separator:a2f266b6147c4a6bbc5b68994d2dc1517"><td class="memSeparator" colspan="2"> </td></tr>
119 <tr class="memitem:a4042d221f7f07a7394d2eb0f14db2857"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a4042d221f7f07a7394d2eb0f14db2857">disconnect</a> ()</td></tr>
120 <tr class="memdesc:a4042d221f7f07a7394d2eb0f14db2857"><td class="mdescLeft"> </td><td class="mdescRight">Disconnects the slot. <a href="classsigc_1_1slot__base.html#a4042d221f7f07a7394d2eb0f14db2857">More...</a><br /></td></tr>
121 <tr class="separator:a4042d221f7f07a7394d2eb0f14db2857"><td class="memSeparator" colspan="2"> </td></tr>
122 <tr class="memitem:ae6ac6ca962a1f6a7506d0817165b5cef"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#ae6ac6ca962a1f6a7506d0817165b5cef">empty</a> () const noexcept</td></tr>
123 <tr class="memdesc:ae6ac6ca962a1f6a7506d0817165b5cef"><td class="mdescLeft"> </td><td class="mdescRight">Returns whether the slot is invalid. <a href="classsigc_1_1slot__base.html#ae6ac6ca962a1f6a7506d0817165b5cef">More...</a><br /></td></tr>
124 <tr class="separator:ae6ac6ca962a1f6a7506d0817165b5cef"><td class="memSeparator" colspan="2"> </td></tr>
125 <tr class="memitem:a90d4d7d6037973a94d7dfd7ba9a5feb9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a90d4d7d6037973a94d7dfd7ba9a5feb9">operator bool</a> () const noexcept</td></tr>
126 <tr class="memdesc:a90d4d7d6037973a94d7dfd7ba9a5feb9"><td class="mdescLeft"> </td><td class="mdescRight">Tests whether a slot is null, because the default constructor was used. <a href="classsigc_1_1slot__base.html#a90d4d7d6037973a94d7dfd7ba9a5feb9">More...</a><br /></td></tr>
127 <tr class="separator:a90d4d7d6037973a94d7dfd7ba9a5feb9"><td class="memSeparator" colspan="2"> </td></tr>
128 <tr class="memitem:a19522528264f1646f8ed982b0042ffad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1slot__base.html">slot_base</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a19522528264f1646f8ed982b0042ffad">operator=</a> (const <a class="el" href="classsigc_1_1slot__base.html">slot_base</a> & src)</td></tr>
129 <tr class="memdesc:a19522528264f1646f8ed982b0042ffad"><td class="mdescLeft"> </td><td class="mdescRight">Overrides this slot, making a copy from another slot. <a href="classsigc_1_1slot__base.html#a19522528264f1646f8ed982b0042ffad">More...</a><br /></td></tr>
130 <tr class="separator:a19522528264f1646f8ed982b0042ffad"><td class="memSeparator" colspan="2"> </td></tr>
131 <tr class="memitem:a64e36f28ee61a94c0496fe76f6b3e813"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1slot__base.html">slot_base</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a64e36f28ee61a94c0496fe76f6b3e813">operator=</a> (<a class="el" href="classsigc_1_1slot__base.html">slot_base</a> && src)</td></tr>
132 <tr class="memdesc:a64e36f28ee61a94c0496fe76f6b3e813"><td class="mdescLeft"> </td><td class="mdescRight">Overrides this slot, making a move from another slot. <a href="classsigc_1_1slot__base.html#a64e36f28ee61a94c0496fe76f6b3e813">More...</a><br /></td></tr>
133 <tr class="separator:a64e36f28ee61a94c0496fe76f6b3e813"><td class="memSeparator" colspan="2"> </td></tr>
134 <tr class="memitem:a69c55dedaa35626f288754d55b3da66c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a69c55dedaa35626f288754d55b3da66c">remove_destroy_notify_callback</a> (void *<a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01635.html#a4a0b2b9455f1e2025d77ba49b3863e33">data</a>) const</td></tr>
135 <tr class="memdesc:a69c55dedaa35626f288754d55b3da66c"><td class="mdescLeft"> </td><td class="mdescRight">Remove a callback previously installed with <a class="el" href="classsigc_1_1slot__base.html#a8e37cc8f4b57898a288680e59bea2694" title="Add a callback that is executed (notified) when the slot is detroyed.">add_destroy_notify_callback()</a>. <a href="classsigc_1_1slot__base.html#a69c55dedaa35626f288754d55b3da66c">More...</a><br /></td></tr>
136 <tr class="separator:a69c55dedaa35626f288754d55b3da66c"><td class="memSeparator" colspan="2"> </td></tr>
137 <tr class="memitem:aa7d281de451d5f47923f4ff1c5b7f2c9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#aa7d281de451d5f47923f4ff1c5b7f2c9">set_parent</a> (void * parent, void *(* cleanup)(void *)) const noexcept</td></tr>
138 <tr class="memdesc:aa7d281de451d5f47923f4ff1c5b7f2c9"><td class="mdescLeft"> </td><td class="mdescRight">Sets the parent of this slot. <a href="classsigc_1_1slot__base.html#aa7d281de451d5f47923f4ff1c5b7f2c9">More...</a><br /></td></tr>
139 <tr class="separator:aa7d281de451d5f47923f4ff1c5b7f2c9"><td class="memSeparator" colspan="2"> </td></tr>
140 <tr class="memitem:a25ad0bd4d2cea4dbfcd09f7d393d266d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a25ad0bd4d2cea4dbfcd09f7d393d266d">unblock</a> () noexcept</td></tr>
141 <tr class="memdesc:a25ad0bd4d2cea4dbfcd09f7d393d266d"><td class="mdescLeft"> </td><td class="mdescRight">Unsets the blocking state. <a href="classsigc_1_1slot__base.html#a25ad0bd4d2cea4dbfcd09f7d393d266d">More...</a><br /></td></tr>
142 <tr class="separator:a25ad0bd4d2cea4dbfcd09f7d393d266d"><td class="memSeparator" colspan="2"> </td></tr>
143 </table><table class="memberdecls">
144 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
145 Public Attributes</h2></td></tr>
146 <tr class="memitem:a9dc4958860c0f8300b461a743b7f2a2b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#a9dc4958860c0f8300b461a743b7f2a2b">blocked_</a></td></tr>
147 <tr class="memdesc:a9dc4958860c0f8300b461a743b7f2a2b"><td class="mdescLeft"> </td><td class="mdescRight">Indicates whether the slot is blocked. <a href="classsigc_1_1slot__base.html#a9dc4958860c0f8300b461a743b7f2a2b">More...</a><br /></td></tr>
148 <tr class="separator:a9dc4958860c0f8300b461a743b7f2a2b"><td class="memSeparator" colspan="2"> </td></tr>
149 <tr class="memitem:aa482f7dfc73c6950abde0fd51b3125b5"><td class="memItemLeft" align="right" valign="top">rep_type * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot__base.html#aa482f7dfc73c6950abde0fd51b3125b5">rep_</a></td></tr>
150 <tr class="memdesc:aa482f7dfc73c6950abde0fd51b3125b5"><td class="mdescLeft"> </td><td class="mdescRight">Typed slot_rep object that contains a functor. <a href="classsigc_1_1slot__base.html#aa482f7dfc73c6950abde0fd51b3125b5">More...</a><br /></td></tr>
151 <tr class="separator:aa482f7dfc73c6950abde0fd51b3125b5"><td class="memSeparator" colspan="2"> </td></tr>
153 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
154 <div class="textblock"><p>Base type for slots. </p>
155 <p><a class="el" href="classsigc_1_1slot__base.html" title="Base type for slots.">slot_base</a> integrates most of the interface of the derived <a class="el" href="classsigc_1_1slot.html" title="Convenience wrapper for the numbered sigc::slot# templates.">sigc::slot</a> templates. slots can be connected to signals, be disconnected at some later point (<a class="el" href="classsigc_1_1slot__base.html#a4042d221f7f07a7394d2eb0f14db2857" title="Disconnects the slot.">disconnect()</a>) and temporarily be blocked (<a class="el" href="classsigc_1_1slot__base.html#a657a8473164c963a5ca4828c88121bb9" title="Sets the blocking state.">block()</a>, <a class="el" href="classsigc_1_1slot__base.html#a25ad0bd4d2cea4dbfcd09f7d393d266d" title="Unsets the blocking state.">unblock()</a>). The validity of a slot can be tested with <a class="el" href="classsigc_1_1slot__base.html#ae6ac6ca962a1f6a7506d0817165b5cef" title="Returns whether the slot is invalid.">empty()</a>.</p>
156 <p>The internal representation of a sigc::internal::slot_rep derived type is built from <a class="el" href="classsigc_1_1slot__base.html" title="Base type for slots.">slot_base</a>'s derivations. <a class="el" href="classsigc_1_1slot__base.html#aa7d281de451d5f47923f4ff1c5b7f2c9" title="Sets the parent of this slot.">set_parent()</a> is used to register a notification callback that is executed when the slot gets invalid. <a class="el" href="classsigc_1_1slot__base.html#a8e37cc8f4b57898a288680e59bea2694" title="Add a callback that is executed (notified) when the slot is detroyed.">add_destroy_notify_callback()</a> is used by connection objects to add a notification callback that is executed on destruction. </p>
157 </div><h2 class="groupheader">Member Typedef Documentation</h2>
158 <a id="a7e1a0c2fe43a42187810e8997abeb341"></a>
159 <h2 class="memtitle"><span class="permalink"><a href="#a7e1a0c2fe43a42187810e8997abeb341">◆ </a></span>func_destroy_notify</h2>
161 <div class="memitem">
162 <div class="memproto">
163 <table class="memname">
165 <td class="memname">typedef <a class="el" href="structsigc_1_1trackable.html#a3338954d7565534bd945290b798e13ed">trackable::func_destroy_notify</a> <a class="el" href="classsigc_1_1slot__base.html#a7e1a0c2fe43a42187810e8997abeb341">sigc::slot_base::func_destroy_notify</a></td>
168 </div><div class="memdoc">
172 <h2 class="groupheader">Constructor & Destructor Documentation</h2>
173 <a id="a182d5db71ef371838c73bcf1c135cd9a"></a>
174 <h2 class="memtitle"><span class="permalink"><a href="#a182d5db71ef371838c73bcf1c135cd9a">◆ </a></span>slot_base() <span class="overload">[1/4]</span></h2>
176 <div class="memitem">
177 <div class="memproto">
178 <table class="mlabels">
180 <td class="mlabels-left">
181 <table class="memname">
183 <td class="memname">sigc::slot_base::slot_base </td>
185 <td class="paramname"></td><td>)</td>
190 <td class="mlabels-right">
191 <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
194 </div><div class="memdoc">
196 <p>Constructs an empty slot. </p>
200 <a id="a5fbc2bf38a0d9ebcbe13d578d2b3d5a1"></a>
201 <h2 class="memtitle"><span class="permalink"><a href="#a5fbc2bf38a0d9ebcbe13d578d2b3d5a1">◆ </a></span>slot_base() <span class="overload">[2/4]</span></h2>
203 <div class="memitem">
204 <div class="memproto">
205 <table class="mlabels">
207 <td class="mlabels-left">
208 <table class="memname">
210 <td class="memname">sigc::slot_base::slot_base </td>
212 <td class="paramtype">rep_type * </td>
213 <td class="paramname"><em>rep</em></td><td>)</td>
218 <td class="mlabels-right">
219 <span class="mlabels"><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span> </td>
222 </div><div class="memdoc">
224 <p>Constructs a slot from an existing slot_rep object. </p>
225 <dl class="params"><dt>Parameters</dt><dd>
226 <table class="params">
227 <tr><td class="paramname">rep</td><td>The slot_rep object this slot should contain. </td></tr>
234 <a id="aadcbb54832b5207bddf89ac5433b531a"></a>
235 <h2 class="memtitle"><span class="permalink"><a href="#aadcbb54832b5207bddf89ac5433b531a">◆ </a></span>slot_base() <span class="overload">[3/4]</span></h2>
237 <div class="memitem">
238 <div class="memproto">
239 <table class="memname">
241 <td class="memname">sigc::slot_base::slot_base </td>
243 <td class="paramtype">const <a class="el" href="classsigc_1_1slot__base.html">slot_base</a> & </td>
244 <td class="paramname"><em>src</em></td><td>)</td>
248 </div><div class="memdoc">
250 <p>Constructs a slot, copying an existing one. </p>
251 <dl class="params"><dt>Parameters</dt><dd>
252 <table class="params">
253 <tr><td class="paramname">src</td><td>The existing slot to copy. </td></tr>
260 <a id="ad1fee67a5885e424c275ad0f48fc81b1"></a>
261 <h2 class="memtitle"><span class="permalink"><a href="#ad1fee67a5885e424c275ad0f48fc81b1">◆ </a></span>slot_base() <span class="overload">[4/4]</span></h2>
263 <div class="memitem">
264 <div class="memproto">
265 <table class="memname">
267 <td class="memname">sigc::slot_base::slot_base </td>
269 <td class="paramtype"><a class="el" href="classsigc_1_1slot__base.html">slot_base</a> && </td>
270 <td class="paramname"><em>src</em></td><td>)</td>
274 </div><div class="memdoc">
276 <p>Constructs a slot, moving an existing one. </p>
277 <p>If <code>src</code> is connected to a parent (e.g. a signal), it is copied, not moved. </p><dl class="params"><dt>Parameters</dt><dd>
278 <table class="params">
279 <tr><td class="paramname">src</td><td>The existing slot to move or copy. </td></tr>
286 <a id="a75c18c50860f63fb020fc2953576ea57"></a>
287 <h2 class="memtitle"><span class="permalink"><a href="#a75c18c50860f63fb020fc2953576ea57">◆ </a></span>~slot_base()</h2>
289 <div class="memitem">
290 <div class="memproto">
291 <table class="memname">
293 <td class="memname">sigc::slot_base::~slot_base </td>
295 <td class="paramname"></td><td>)</td>
299 </div><div class="memdoc">
303 <h2 class="groupheader">Member Function Documentation</h2>
304 <a id="a8e37cc8f4b57898a288680e59bea2694"></a>
305 <h2 class="memtitle"><span class="permalink"><a href="#a8e37cc8f4b57898a288680e59bea2694">◆ </a></span>add_destroy_notify_callback()</h2>
307 <div class="memitem">
308 <div class="memproto">
309 <table class="memname">
311 <td class="memname">void sigc::slot_base::add_destroy_notify_callback </td>
313 <td class="paramtype">void * </td>
314 <td class="paramname"><em>data</em>, </td>
317 <td class="paramkey"></td>
319 <td class="paramtype"><a class="el" href="classsigc_1_1slot__base.html#a7e1a0c2fe43a42187810e8997abeb341">func_destroy_notify</a> </td>
320 <td class="paramname"><em>func</em> </td>
325 <td></td><td> const</td>
328 </div><div class="memdoc">
330 <p>Add a callback that is executed (notified) when the slot is detroyed. </p>
331 <p>This function is used internally by connection objects. </p><dl class="params"><dt>Parameters</dt><dd>
332 <table class="params">
333 <tr><td class="paramname">data</td><td>Passed into func upon notification. </td></tr>
334 <tr><td class="paramname">func</td><td>Callback executed upon destruction of the object. </td></tr>
341 <a id="a657a8473164c963a5ca4828c88121bb9"></a>
342 <h2 class="memtitle"><span class="permalink"><a href="#a657a8473164c963a5ca4828c88121bb9">◆ </a></span>block()</h2>
344 <div class="memitem">
345 <div class="memproto">
346 <table class="mlabels">
348 <td class="mlabels-left">
349 <table class="memname">
351 <td class="memname">bool sigc::slot_base::block </td>
353 <td class="paramtype">bool </td>
354 <td class="paramname"><em>should_block</em> = <code>true</code></td><td>)</td>
359 <td class="mlabels-right">
360 <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
363 </div><div class="memdoc">
365 <p>Sets the blocking state. </p>
366 <p>If <em>should_block</em> is <code>true</code> then the blocking state is set. Subsequent calls to <a class="el" href="classsigc_1_1slot7.html#a28e18e1a9adc88a4758be7d2497fc88d" title="Invoke the contained functor unless slot is in blocking state.">slot::operator()()</a> don't invoke the functor contained by this slot until <a class="el" href="classsigc_1_1slot__base.html#a25ad0bd4d2cea4dbfcd09f7d393d266d" title="Unsets the blocking state.">unblock()</a> or <a class="el" href="classsigc_1_1slot__base.html#a657a8473164c963a5ca4828c88121bb9" title="Sets the blocking state.">block()</a> with <em>should_block</em> = <code>false</code> is called. </p><dl class="params"><dt>Parameters</dt><dd>
367 <table class="params">
368 <tr><td class="paramname">should_block</td><td>Indicates whether the blocking state should be set or unset. </td></tr>
372 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if the slot was in blocking state before. </dd></dl>
376 <a id="a2f266b6147c4a6bbc5b68994d2dc1517"></a>
377 <h2 class="memtitle"><span class="permalink"><a href="#a2f266b6147c4a6bbc5b68994d2dc1517">◆ </a></span>blocked()</h2>
379 <div class="memitem">
380 <div class="memproto">
381 <table class="mlabels">
383 <td class="mlabels-left">
384 <table class="memname">
386 <td class="memname">bool sigc::slot_base::blocked </td>
388 <td class="paramname"></td><td>)</td>
393 <td class="mlabels-right">
394 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
397 </div><div class="memdoc">
399 <p>Returns whether the slot is blocked. </p>
400 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if the slot is blocked. </dd></dl>
404 <a id="a4042d221f7f07a7394d2eb0f14db2857"></a>
405 <h2 class="memtitle"><span class="permalink"><a href="#a4042d221f7f07a7394d2eb0f14db2857">◆ </a></span>disconnect()</h2>
407 <div class="memitem">
408 <div class="memproto">
409 <table class="memname">
411 <td class="memname">void sigc::slot_base::disconnect </td>
413 <td class="paramname"></td><td>)</td>
417 </div><div class="memdoc">
419 <p>Disconnects the slot. </p>
420 <p>Invalidates the slot and notifies the parent. </p>
424 <a id="ae6ac6ca962a1f6a7506d0817165b5cef"></a>
425 <h2 class="memtitle"><span class="permalink"><a href="#ae6ac6ca962a1f6a7506d0817165b5cef">◆ </a></span>empty()</h2>
427 <div class="memitem">
428 <div class="memproto">
429 <table class="mlabels">
431 <td class="mlabels-left">
432 <table class="memname">
434 <td class="memname">bool sigc::slot_base::empty </td>
436 <td class="paramname"></td><td>)</td>
441 <td class="mlabels-right">
442 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
445 </div><div class="memdoc">
447 <p>Returns whether the slot is invalid. </p>
448 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if the slot is invalid (empty). </dd></dl>
452 <a id="a90d4d7d6037973a94d7dfd7ba9a5feb9"></a>
453 <h2 class="memtitle"><span class="permalink"><a href="#a90d4d7d6037973a94d7dfd7ba9a5feb9">◆ </a></span>operator bool()</h2>
455 <div class="memitem">
456 <div class="memproto">
457 <table class="mlabels">
459 <td class="mlabels-left">
460 <table class="memname">
462 <td class="memname">sigc::slot_base::operator bool </td>
464 <td class="paramname"></td><td>)</td>
469 <td class="mlabels-right">
470 <span class="mlabels"><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span> </td>
473 </div><div class="memdoc">
475 <p>Tests whether a slot is null, because the default constructor was used. </p>
476 <p>Test a slot for null like so: </p><div class="fragment"><div class="line"><span class="keywordflow">if</span>(slot)</div>
477 <div class="line"> do_something()</div>
478 </div><!-- fragment -->
481 <a id="a19522528264f1646f8ed982b0042ffad"></a>
482 <h2 class="memtitle"><span class="permalink"><a href="#a19522528264f1646f8ed982b0042ffad">◆ </a></span>operator=() <span class="overload">[1/2]</span></h2>
484 <div class="memitem">
485 <div class="memproto">
486 <table class="memname">
488 <td class="memname"><a class="el" href="classsigc_1_1slot__base.html">slot_base</a>& sigc::slot_base::operator= </td>
490 <td class="paramtype">const <a class="el" href="classsigc_1_1slot__base.html">slot_base</a> & </td>
491 <td class="paramname"><em>src</em></td><td>)</td>
495 </div><div class="memdoc">
497 <p>Overrides this slot, making a copy from another slot. </p>
498 <dl class="params"><dt>Parameters</dt><dd>
499 <table class="params">
500 <tr><td class="paramname">src</td><td>The slot from which to make a copy. </td></tr>
504 <dl class="section return"><dt>Returns</dt><dd><code>this</code>. </dd></dl>
508 <a id="a64e36f28ee61a94c0496fe76f6b3e813"></a>
509 <h2 class="memtitle"><span class="permalink"><a href="#a64e36f28ee61a94c0496fe76f6b3e813">◆ </a></span>operator=() <span class="overload">[2/2]</span></h2>
511 <div class="memitem">
512 <div class="memproto">
513 <table class="memname">
515 <td class="memname"><a class="el" href="classsigc_1_1slot__base.html">slot_base</a>& sigc::slot_base::operator= </td>
517 <td class="paramtype"><a class="el" href="classsigc_1_1slot__base.html">slot_base</a> && </td>
518 <td class="paramname"><em>src</em></td><td>)</td>
522 </div><div class="memdoc">
524 <p>Overrides this slot, making a move from another slot. </p>
525 <p>If <code>src</code> is connected to a parent (e.g. a signal), it is copied, not moved. </p><dl class="params"><dt>Parameters</dt><dd>
526 <table class="params">
527 <tr><td class="paramname">src</td><td>The slot from which to move or copy. </td></tr>
531 <dl class="section return"><dt>Returns</dt><dd><code>this</code>. </dd></dl>
535 <a id="a69c55dedaa35626f288754d55b3da66c"></a>
536 <h2 class="memtitle"><span class="permalink"><a href="#a69c55dedaa35626f288754d55b3da66c">◆ </a></span>remove_destroy_notify_callback()</h2>
538 <div class="memitem">
539 <div class="memproto">
540 <table class="memname">
542 <td class="memname">void sigc::slot_base::remove_destroy_notify_callback </td>
544 <td class="paramtype">void * </td>
545 <td class="paramname"><em>data</em></td><td>)</td>
549 </div><div class="memdoc">
551 <p>Remove a callback previously installed with <a class="el" href="classsigc_1_1slot__base.html#a8e37cc8f4b57898a288680e59bea2694" title="Add a callback that is executed (notified) when the slot is detroyed.">add_destroy_notify_callback()</a>. </p>
552 <p>The callback is not executed. </p><dl class="params"><dt>Parameters</dt><dd>
553 <table class="params">
554 <tr><td class="paramname">data</td><td>Parameter passed into previous call to <a class="el" href="classsigc_1_1slot__base.html#a8e37cc8f4b57898a288680e59bea2694" title="Add a callback that is executed (notified) when the slot is detroyed.">add_destroy_notify_callback()</a>. </td></tr>
561 <a id="aa7d281de451d5f47923f4ff1c5b7f2c9"></a>
562 <h2 class="memtitle"><span class="permalink"><a href="#aa7d281de451d5f47923f4ff1c5b7f2c9">◆ </a></span>set_parent()</h2>
564 <div class="memitem">
565 <div class="memproto">
566 <table class="mlabels">
568 <td class="mlabels-left">
569 <table class="memname">
571 <td class="memname">void sigc::slot_base::set_parent </td>
573 <td class="paramtype">void * </td>
574 <td class="paramname"><em>parent</em>, </td>
577 <td class="paramkey"></td>
579 <td class="paramtype">void *(*)(void *) </td>
580 <td class="paramname"><em>cleanup</em> </td>
585 <td></td><td> const</td>
589 <td class="mlabels-right">
590 <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
593 </div><div class="memdoc">
595 <p>Sets the parent of this slot. </p>
596 <p>This function is used by signals to register a notification callback. This notification callback is executed when the slot becomes invalid because of some referred object dying. </p><dl class="params"><dt>Parameters</dt><dd>
597 <table class="params">
598 <tr><td class="paramname">parent</td><td>The new parent. </td></tr>
599 <tr><td class="paramname">cleanup</td><td>The notification callback. </td></tr>
606 <a id="a25ad0bd4d2cea4dbfcd09f7d393d266d"></a>
607 <h2 class="memtitle"><span class="permalink"><a href="#a25ad0bd4d2cea4dbfcd09f7d393d266d">◆ </a></span>unblock()</h2>
609 <div class="memitem">
610 <div class="memproto">
611 <table class="mlabels">
613 <td class="mlabels-left">
614 <table class="memname">
616 <td class="memname">bool sigc::slot_base::unblock </td>
618 <td class="paramname"></td><td>)</td>
623 <td class="mlabels-right">
624 <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
627 </div><div class="memdoc">
629 <p>Unsets the blocking state. </p>
630 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if the slot was in blocking state before. </dd></dl>
634 <h2 class="groupheader">Member Data Documentation</h2>
635 <a id="a9dc4958860c0f8300b461a743b7f2a2b"></a>
636 <h2 class="memtitle"><span class="permalink"><a href="#a9dc4958860c0f8300b461a743b7f2a2b">◆ </a></span>blocked_</h2>
638 <div class="memitem">
639 <div class="memproto">
640 <table class="memname">
642 <td class="memname">bool sigc::slot_base::blocked_</td>
645 </div><div class="memdoc">
647 <p>Indicates whether the slot is blocked. </p>
651 <a id="aa482f7dfc73c6950abde0fd51b3125b5"></a>
652 <h2 class="memtitle"><span class="permalink"><a href="#aa482f7dfc73c6950abde0fd51b3125b5">◆ </a></span>rep_</h2>
654 <div class="memitem">
655 <div class="memproto">
656 <table class="mlabels">
658 <td class="mlabels-left">
659 <table class="memname">
661 <td class="memname">rep_type* sigc::slot_base::rep_</td>
665 <td class="mlabels-right">
666 <span class="mlabels"><span class="mlabel">mutable</span></span> </td>
669 </div><div class="memdoc">
671 <p>Typed slot_rep object that contains a functor. </p>
675 </div><!-- contents -->
676 <!-- start footer part -->
677 <hr class="footer"/><address class="footer"><small>
678 Generated on Fri Feb 11 2022 15:40:59 for libsigc++ by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1