1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.8.9.1"/>
7 <title>libsigc++: sigc::trackable Struct Reference</title>
8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
9 <script type="text/javascript" src="jquery.js"></script>
10 <script type="text/javascript" src="dynsections.js"></script>
11 <link href="doxygen.css" rel="stylesheet" type="text/css" />
12 <link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
15 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
17 <table cellspacing="0" cellpadding="0">
19 <tr style="height: 56px;">
20 <td style="padding-left: 0.5em;">
21 <div id="projectname">libsigc++
22  <span id="projectnumber">2.99.2</span>
29 <!-- end header part -->
30 <!-- Generated by Doxygen 1.8.9.1 -->
31 <div id="navrow1" class="tabs">
33 <li><a href="index.html"><span>Main Page</span></a></li>
34 <li><a href="pages.html"><span>Related Pages</span></a></li>
35 <li><a href="modules.html"><span>Modules</span></a></li>
36 <li><a href="namespaces.html"><span>Namespaces</span></a></li>
37 <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
40 <div id="navrow2" class="tabs2">
42 <li><a href="annotated.html"><span>Class List</span></a></li>
43 <li><a href="classes.html"><span>Class Index</span></a></li>
44 <li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
45 <li><a href="functions.html"><span>Class Members</span></a></li>
48 <div id="nav-path" class="navpath">
50 <li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="structsigc_1_1trackable.html">trackable</a></li> </ul>
55 <a href="#pub-types">Public Types</a> |
56 <a href="#pub-methods">Public Member Functions</a> |
57 <a href="structsigc_1_1trackable-members.html">List of all members</a> </div>
58 <div class="headertitle">
59 <div class="title">sigc::trackable Struct Reference<div class="ingroups"><a class="el" href="group__signal.html">Signals</a></div></div> </div>
61 <div class="contents">
63 <p>Base class for objects with auto-disconnection.
64 <a href="structsigc_1_1trackable.html#details">More...</a></p>
66 <p><code>#include <sigc++/trackable.h></code></p>
67 <div class="dynheader">
68 Inheritance diagram for sigc::trackable:</div>
69 <div class="dyncontent">
70 <div class="center"><img src="structsigc_1_1trackable__inherit__graph.png" border="0" usemap="#sigc_1_1trackable_inherit__map" alt="Inheritance graph"/></div>
71 <map name="sigc_1_1trackable_inherit__map" id="sigc_1_1trackable_inherit__map">
72 <area shape="rect" id="node3" title="Internal representation of a slot. " alt="" coords="329,38,492,65"/><area shape="rect" id="node5" href="structsigc_1_1signal__base.html" title="Base class for the sigc::signal# templates. " alt="" coords="345,139,476,166"/><area shape="rect" id="node2" href="structsigc_1_1notifiable.html" title="sigc::notifiable" alt="" coords="5,114,119,141"/><area shape="rect" id="node4" title="A typed slot_rep. " alt="" coords="561,5,730,47"/><area shape="rect" id="node6" href="classsigc_1_1signal__with__accumulator.html" title="Signal declaration. " alt="" coords="540,70,751,126"/><area shape="rect" id="node7" href="classsigc_1_1signal__with__accumulator.html" title="sigc::signal_with_accumulator\l\< T_return, T_accumulator,\l T_arg...\>" alt="" coords="540,150,751,206"/><area shape="rect" id="node9" href="classsigc_1_1signal__with__accumulator.html" title="sigc::signal_with_accumulator\l\< T_return, void, T_arg...\>" alt="" coords="540,229,751,271"/><area shape="rect" id="node8" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html" title="Like sigc::signal but the additional template parameter T_accumulator defines the accumulator type th..." alt="" coords="799,150,980,206"/><area shape="rect" id="node10" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html" title="sigc::signal\< T_return\l(T_arg...)\>" alt="" coords="809,229,969,271"/></map>
73 <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
74 <table class="memberdecls">
75 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
76 Public Types</h2></td></tr>
77 <tr class="memitem:a1721dff57885c3ff2bc409538ceb8097"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#a1721dff57885c3ff2bc409538ceb8097">func_destroy_notify</a> = internal::func_destroy_notify</td></tr>
78 <tr class="separator:a1721dff57885c3ff2bc409538ceb8097"><td class="memSeparator" colspan="2"> </td></tr>
79 <tr class="inherit_header pub_types_structsigc_1_1notifiable"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structsigc_1_1notifiable')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="structsigc_1_1notifiable.html">sigc::notifiable</a></td></tr>
80 <tr class="memitem:a71455cae4b10ff1277e68a1729e1b8c4 inherit pub_types_structsigc_1_1notifiable"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1notifiable.html#a71455cae4b10ff1277e68a1729e1b8c4">func_destroy_notify</a> = internal::func_destroy_notify</td></tr>
81 <tr class="separator:a71455cae4b10ff1277e68a1729e1b8c4 inherit pub_types_structsigc_1_1notifiable"><td class="memSeparator" colspan="2"> </td></tr>
82 </table><table class="memberdecls">
83 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
84 Public Member Functions</h2></td></tr>
85 <tr class="memitem:a7e1348841e762fb41b41c6f2ce9fa073"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#a7e1348841e762fb41b41c6f2ce9fa073">trackable</a> () noexcept</td></tr>
86 <tr class="separator:a7e1348841e762fb41b41c6f2ce9fa073"><td class="memSeparator" colspan="2"> </td></tr>
87 <tr class="memitem:ac8431d9452c9698a012597e6560c72fa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#ac8431d9452c9698a012597e6560c72fa">trackable</a> (const <a class="el" href="structsigc_1_1trackable.html">trackable</a>& src) noexcept</td></tr>
88 <tr class="separator:ac8431d9452c9698a012597e6560c72fa"><td class="memSeparator" colspan="2"> </td></tr>
89 <tr class="memitem:aba42ed8afb6598106cf68c18a7387f18"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#aba42ed8afb6598106cf68c18a7387f18">trackable</a> (<a class="el" href="structsigc_1_1trackable.html">trackable</a>&& src)</td></tr>
90 <tr class="separator:aba42ed8afb6598106cf68c18a7387f18"><td class="memSeparator" colspan="2"> </td></tr>
91 <tr class="memitem:a75587da09e30031db7a2519843f1f4fb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#a75587da09e30031db7a2519843f1f4fb">~trackable</a> ()</td></tr>
92 <tr class="separator:a75587da09e30031db7a2519843f1f4fb"><td class="memSeparator" colspan="2"> </td></tr>
93 <tr class="memitem:a146daab307d37c92b68a974c79ed10b7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#a146daab307d37c92b68a974c79ed10b7">add_destroy_notify_callback</a> (<a class="el" href="structsigc_1_1notifiable.html">notifiable</a>* data, <a class="el" href="structsigc_1_1notifiable.html#a71455cae4b10ff1277e68a1729e1b8c4">func_destroy_notify</a> func) const </td></tr>
94 <tr class="memdesc:a146daab307d37c92b68a974c79ed10b7"><td class="mdescLeft"> </td><td class="mdescRight">Add a callback that is executed (notified) when the trackable object is detroyed. <a href="#a146daab307d37c92b68a974c79ed10b7">More...</a><br /></td></tr>
95 <tr class="separator:a146daab307d37c92b68a974c79ed10b7"><td class="memSeparator" colspan="2"> </td></tr>
96 <tr class="memitem:af2e23cfe7adc1ca844a3350bbac557cb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#af2e23cfe7adc1ca844a3350bbac557cb">notify_callbacks</a> ()</td></tr>
97 <tr class="memdesc:af2e23cfe7adc1ca844a3350bbac557cb"><td class="mdescLeft"> </td><td class="mdescRight">Execute and remove all previously installed callbacks. <a href="#af2e23cfe7adc1ca844a3350bbac557cb">More...</a><br /></td></tr>
98 <tr class="separator:af2e23cfe7adc1ca844a3350bbac557cb"><td class="memSeparator" colspan="2"> </td></tr>
99 <tr class="memitem:a7494fbad23a65932ff1457d00d4edaf5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsigc_1_1trackable.html">trackable</a>& </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#a7494fbad23a65932ff1457d00d4edaf5">operator=</a> (const <a class="el" href="structsigc_1_1trackable.html">trackable</a>& src)</td></tr>
100 <tr class="separator:a7494fbad23a65932ff1457d00d4edaf5"><td class="memSeparator" colspan="2"> </td></tr>
101 <tr class="memitem:ac3d61cdb452dc46fcdc8a8d42d9c079d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsigc_1_1trackable.html">trackable</a>& </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#ac3d61cdb452dc46fcdc8a8d42d9c079d">operator=</a> (<a class="el" href="structsigc_1_1trackable.html">trackable</a>&& src)</td></tr>
102 <tr class="separator:ac3d61cdb452dc46fcdc8a8d42d9c079d"><td class="memSeparator" colspan="2"> </td></tr>
103 <tr class="memitem:a700a7b0a5059a9c8eda2b1a6eb6905f8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#a700a7b0a5059a9c8eda2b1a6eb6905f8">remove_destroy_notify_callback</a> (<a class="el" href="structsigc_1_1notifiable.html">notifiable</a>* data) const </td></tr>
104 <tr class="memdesc:a700a7b0a5059a9c8eda2b1a6eb6905f8"><td class="mdescLeft"> </td><td class="mdescRight">Remove a callback previously installed with <a class="el" href="structsigc_1_1trackable.html#a146daab307d37c92b68a974c79ed10b7" title="Add a callback that is executed (notified) when the trackable object is detroyed. ...">add_destroy_notify_callback()</a>. <a href="#a700a7b0a5059a9c8eda2b1a6eb6905f8">More...</a><br /></td></tr>
105 <tr class="separator:a700a7b0a5059a9c8eda2b1a6eb6905f8"><td class="memSeparator" colspan="2"> </td></tr>
107 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
108 <div class="textblock"><p>Base class for objects with auto-disconnection. </p>
109 <p>trackable must be inherited when objects shall automatically invalidate slots referring to them on destruction. A slot built from a member function of a trackable derived type installs a callback that is invoked when the trackable object is destroyed or overwritten.</p>
110 <p><a class="el" href="structsigc_1_1trackable.html#a146daab307d37c92b68a974c79ed10b7" title="Add a callback that is executed (notified) when the trackable object is detroyed. ...">add_destroy_notify_callback()</a> and <a class="el" href="structsigc_1_1trackable.html#a700a7b0a5059a9c8eda2b1a6eb6905f8" title="Remove a callback previously installed with add_destroy_notify_callback(). ">remove_destroy_notify_callback()</a> can be used to manually install and remove callbacks when notification of the object dying is needed.</p>
111 <p><a class="el" href="structsigc_1_1trackable.html#af2e23cfe7adc1ca844a3350bbac557cb" title="Execute and remove all previously installed callbacks. ">notify_callbacks()</a> invokes and removes all previously installed callbacks and can therefore be used to disconnect from all signals.</p>
112 <p>Note that there is no virtual destructor. Don't use <code>trackable*</code> as pointer type for managing your data or the destructors of your derived types won't be called when deleting your objects. </p>
113 </div><h2 class="groupheader">Member Typedef Documentation</h2>
114 <a class="anchor" id="a1721dff57885c3ff2bc409538ceb8097"></a>
115 <div class="memitem">
116 <div class="memproto">
117 <table class="memname">
119 <td class="memname">using <a class="el" href="structsigc_1_1trackable.html#a1721dff57885c3ff2bc409538ceb8097">sigc::trackable::func_destroy_notify</a> = internal::func_destroy_notify</td>
122 </div><div class="memdoc">
126 <h2 class="groupheader">Constructor & Destructor Documentation</h2>
127 <a class="anchor" id="a7e1348841e762fb41b41c6f2ce9fa073"></a>
128 <div class="memitem">
129 <div class="memproto">
130 <table class="mlabels">
132 <td class="mlabels-left">
133 <table class="memname">
135 <td class="memname">sigc::trackable::trackable </td>
137 <td class="paramname"></td><td>)</td>
142 <td class="mlabels-right">
143 <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
146 </div><div class="memdoc">
150 <a class="anchor" id="ac8431d9452c9698a012597e6560c72fa"></a>
151 <div class="memitem">
152 <div class="memproto">
153 <table class="mlabels">
155 <td class="mlabels-left">
156 <table class="memname">
158 <td class="memname">sigc::trackable::trackable </td>
160 <td class="paramtype">const <a class="el" href="structsigc_1_1trackable.html">trackable</a>& </td>
161 <td class="paramname"><em>src</em></td><td>)</td>
166 <td class="mlabels-right">
167 <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
170 </div><div class="memdoc">
174 <a class="anchor" id="aba42ed8afb6598106cf68c18a7387f18"></a>
175 <div class="memitem">
176 <div class="memproto">
177 <table class="memname">
179 <td class="memname">sigc::trackable::trackable </td>
181 <td class="paramtype"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&& </td>
182 <td class="paramname"><em>src</em></td><td>)</td>
186 </div><div class="memdoc">
190 <a class="anchor" id="a75587da09e30031db7a2519843f1f4fb"></a>
191 <div class="memitem">
192 <div class="memproto">
193 <table class="memname">
195 <td class="memname">sigc::trackable::~trackable </td>
197 <td class="paramname"></td><td>)</td>
201 </div><div class="memdoc">
205 <h2 class="groupheader">Member Function Documentation</h2>
206 <a class="anchor" id="a146daab307d37c92b68a974c79ed10b7"></a>
207 <div class="memitem">
208 <div class="memproto">
209 <table class="memname">
211 <td class="memname">void sigc::trackable::add_destroy_notify_callback </td>
213 <td class="paramtype"><a class="el" href="structsigc_1_1notifiable.html">notifiable</a>* </td>
214 <td class="paramname"><em>data</em>, </td>
217 <td class="paramkey"></td>
219 <td class="paramtype"><a class="el" href="structsigc_1_1notifiable.html#a71455cae4b10ff1277e68a1729e1b8c4">func_destroy_notify</a> </td>
220 <td class="paramname"><em>func</em> </td>
225 <td></td><td> const</td>
228 </div><div class="memdoc">
230 <p>Add a callback that is executed (notified) when the trackable object is detroyed. </p>
231 <dl class="params"><dt>Parameters</dt><dd>
232 <table class="params">
233 <tr><td class="paramname">data</td><td>Passed into func upon notification. </td></tr>
234 <tr><td class="paramname">func</td><td>Callback executed upon destruction of the object. </td></tr>
241 <a class="anchor" id="af2e23cfe7adc1ca844a3350bbac557cb"></a>
242 <div class="memitem">
243 <div class="memproto">
244 <table class="memname">
246 <td class="memname">void sigc::trackable::notify_callbacks </td>
248 <td class="paramname"></td><td>)</td>
252 </div><div class="memdoc">
254 <p>Execute and remove all previously installed callbacks. </p>
258 <a class="anchor" id="a7494fbad23a65932ff1457d00d4edaf5"></a>
259 <div class="memitem">
260 <div class="memproto">
261 <table class="memname">
263 <td class="memname"><a class="el" href="structsigc_1_1trackable.html">trackable</a>& sigc::trackable::operator= </td>
265 <td class="paramtype">const <a class="el" href="structsigc_1_1trackable.html">trackable</a>& </td>
266 <td class="paramname"><em>src</em></td><td>)</td>
270 </div><div class="memdoc">
274 <a class="anchor" id="ac3d61cdb452dc46fcdc8a8d42d9c079d"></a>
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
279 <td class="memname"><a class="el" href="structsigc_1_1trackable.html">trackable</a>& sigc::trackable::operator= </td>
281 <td class="paramtype"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&& </td>
282 <td class="paramname"><em>src</em></td><td>)</td>
286 </div><div class="memdoc">
290 <a class="anchor" id="a700a7b0a5059a9c8eda2b1a6eb6905f8"></a>
291 <div class="memitem">
292 <div class="memproto">
293 <table class="memname">
295 <td class="memname">void sigc::trackable::remove_destroy_notify_callback </td>
297 <td class="paramtype"><a class="el" href="structsigc_1_1notifiable.html">notifiable</a>* </td>
298 <td class="paramname"><em>data</em></td><td>)</td>
302 </div><div class="memdoc">
304 <p>Remove a callback previously installed with <a class="el" href="structsigc_1_1trackable.html#a146daab307d37c92b68a974c79ed10b7" title="Add a callback that is executed (notified) when the trackable object is detroyed. ...">add_destroy_notify_callback()</a>. </p>
305 <p>The callback is not executed. </p><dl class="params"><dt>Parameters</dt><dd>
306 <table class="params">
307 <tr><td class="paramname">data</td><td>Parameter passed into previous call to <a class="el" href="structsigc_1_1trackable.html#a146daab307d37c92b68a974c79ed10b7" title="Add a callback that is executed (notified) when the trackable object is detroyed. ...">add_destroy_notify_callback()</a>. </td></tr>
314 </div><!-- contents -->
315 <!-- start footer part -->
316 <hr class="footer"/><address class="footer"><small>
317 Generated on Wed Mar 16 2016 20:53:28 for libsigc++ by  <a href="http://www.doxygen.org/index.html">
318 <img class="footer" src="doxygen.png" alt="doxygen"/>