Imported Upstream version 2.99.2
[platform/upstream/libsigc++.git] / docs / reference / html / structsigc_1_1trackable.html
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">
3 <head>
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"/>
13 </head>
14 <body>
15 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
16 <div id="titlearea">
17 <table cellspacing="0" cellpadding="0">
18  <tbody>
19  <tr style="height: 56px;">
20   <td style="padding-left: 0.5em;">
21    <div id="projectname">libsigc++
22    &#160;<span id="projectnumber">2.99.2</span>
23    </div>
24   </td>
25  </tr>
26  </tbody>
27 </table>
28 </div>
29 <!-- end header part -->
30 <!-- Generated by Doxygen 1.8.9.1 -->
31   <div id="navrow1" class="tabs">
32     <ul class="tablist">
33       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
34       <li><a href="pages.html"><span>Related&#160;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>
38     </ul>
39   </div>
40   <div id="navrow2" class="tabs2">
41     <ul class="tablist">
42       <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
43       <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
44       <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
45       <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
46     </ul>
47   </div>
48 <div id="nav-path" class="navpath">
49   <ul>
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>
51 </div>
52 </div><!-- top -->
53 <div class="header">
54   <div class="summary">
55 <a href="#pub-types">Public Types</a> &#124;
56 <a href="#pub-methods">Public Member Functions</a> &#124;
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>
60 </div><!--header-->
61 <div class="contents">
62
63 <p>Base class for objects with auto-disconnection.  
64  <a href="structsigc_1_1trackable.html#details">More...</a></p>
65
66 <p><code>#include &lt;sigc++/trackable.h&gt;</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\&lt; T_return, T_accumulator,\l T_arg...\&gt;" alt="" coords="540,150,751,206"/><area shape="rect" id="node9" href="classsigc_1_1signal__with__accumulator.html" title="sigc::signal_with_accumulator\l\&lt; T_return, void, T_arg...\&gt;" 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\&lt; T_return\l(T_arg...)\&gt;" 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&#160;</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">&#160;</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="-"/>&#160;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&#160;</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">&#160;</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">&#160;</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">&#160;</td></tr>
87 <tr class="memitem:ac8431d9452c9698a012597e6560c72fa"><td class="memItemLeft" align="right" valign="top">&#160;</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>&amp; src) noexcept</td></tr>
88 <tr class="separator:ac8431d9452c9698a012597e6560c72fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
89 <tr class="memitem:aba42ed8afb6598106cf68c18a7387f18"><td class="memItemLeft" align="right" valign="top">&#160;</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>&amp;&amp; src)</td></tr>
90 <tr class="separator:aba42ed8afb6598106cf68c18a7387f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
91 <tr class="memitem:a75587da09e30031db7a2519843f1f4fb"><td class="memItemLeft" align="right" valign="top">&#160;</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">&#160;</td></tr>
93 <tr class="memitem:a146daab307d37c92b68a974c79ed10b7"><td class="memItemLeft" align="right" valign="top">void&#160;</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">&#160;</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">&#160;</td></tr>
96 <tr class="memitem:af2e23cfe7adc1ca844a3350bbac557cb"><td class="memItemLeft" align="right" valign="top">void&#160;</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">&#160;</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">&#160;</td></tr>
99 <tr class="memitem:a7494fbad23a65932ff1457d00d4edaf5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp;&#160;</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>&amp; src)</td></tr>
100 <tr class="separator:a7494fbad23a65932ff1457d00d4edaf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
101 <tr class="memitem:ac3d61cdb452dc46fcdc8a8d42d9c079d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp;&#160;</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>&amp;&amp; src)</td></tr>
102 <tr class="separator:ac3d61cdb452dc46fcdc8a8d42d9c079d"><td class="memSeparator" colspan="2">&#160;</td></tr>
103 <tr class="memitem:a700a7b0a5059a9c8eda2b1a6eb6905f8"><td class="memItemLeft" align="right" valign="top">void&#160;</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">&#160;</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">&#160;</td></tr>
106 </table>
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">
118         <tr>
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>
120         </tr>
121       </table>
122 </div><div class="memdoc">
123
124 </div>
125 </div>
126 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
127 <a class="anchor" id="a7e1348841e762fb41b41c6f2ce9fa073"></a>
128 <div class="memitem">
129 <div class="memproto">
130 <table class="mlabels">
131   <tr>
132   <td class="mlabels-left">
133       <table class="memname">
134         <tr>
135           <td class="memname">sigc::trackable::trackable </td>
136           <td>(</td>
137           <td class="paramname"></td><td>)</td>
138           <td></td>
139         </tr>
140       </table>
141   </td>
142   <td class="mlabels-right">
143 <span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
144   </tr>
145 </table>
146 </div><div class="memdoc">
147
148 </div>
149 </div>
150 <a class="anchor" id="ac8431d9452c9698a012597e6560c72fa"></a>
151 <div class="memitem">
152 <div class="memproto">
153 <table class="mlabels">
154   <tr>
155   <td class="mlabels-left">
156       <table class="memname">
157         <tr>
158           <td class="memname">sigc::trackable::trackable </td>
159           <td>(</td>
160           <td class="paramtype">const <a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp;&#160;</td>
161           <td class="paramname"><em>src</em></td><td>)</td>
162           <td></td>
163         </tr>
164       </table>
165   </td>
166   <td class="mlabels-right">
167 <span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
168   </tr>
169 </table>
170 </div><div class="memdoc">
171
172 </div>
173 </div>
174 <a class="anchor" id="aba42ed8afb6598106cf68c18a7387f18"></a>
175 <div class="memitem">
176 <div class="memproto">
177       <table class="memname">
178         <tr>
179           <td class="memname">sigc::trackable::trackable </td>
180           <td>(</td>
181           <td class="paramtype"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp;&amp;&#160;</td>
182           <td class="paramname"><em>src</em></td><td>)</td>
183           <td></td>
184         </tr>
185       </table>
186 </div><div class="memdoc">
187
188 </div>
189 </div>
190 <a class="anchor" id="a75587da09e30031db7a2519843f1f4fb"></a>
191 <div class="memitem">
192 <div class="memproto">
193       <table class="memname">
194         <tr>
195           <td class="memname">sigc::trackable::~trackable </td>
196           <td>(</td>
197           <td class="paramname"></td><td>)</td>
198           <td></td>
199         </tr>
200       </table>
201 </div><div class="memdoc">
202
203 </div>
204 </div>
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">
210         <tr>
211           <td class="memname">void sigc::trackable::add_destroy_notify_callback </td>
212           <td>(</td>
213           <td class="paramtype"><a class="el" href="structsigc_1_1notifiable.html">notifiable</a>*&#160;</td>
214           <td class="paramname"><em>data</em>, </td>
215         </tr>
216         <tr>
217           <td class="paramkey"></td>
218           <td></td>
219           <td class="paramtype"><a class="el" href="structsigc_1_1notifiable.html#a71455cae4b10ff1277e68a1729e1b8c4">func_destroy_notify</a>&#160;</td>
220           <td class="paramname"><em>func</em>&#160;</td>
221         </tr>
222         <tr>
223           <td></td>
224           <td>)</td>
225           <td></td><td> const</td>
226         </tr>
227       </table>
228 </div><div class="memdoc">
229
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>
235   </table>
236   </dd>
237 </dl>
238
239 </div>
240 </div>
241 <a class="anchor" id="af2e23cfe7adc1ca844a3350bbac557cb"></a>
242 <div class="memitem">
243 <div class="memproto">
244       <table class="memname">
245         <tr>
246           <td class="memname">void sigc::trackable::notify_callbacks </td>
247           <td>(</td>
248           <td class="paramname"></td><td>)</td>
249           <td></td>
250         </tr>
251       </table>
252 </div><div class="memdoc">
253
254 <p>Execute and remove all previously installed callbacks. </p>
255
256 </div>
257 </div>
258 <a class="anchor" id="a7494fbad23a65932ff1457d00d4edaf5"></a>
259 <div class="memitem">
260 <div class="memproto">
261       <table class="memname">
262         <tr>
263           <td class="memname"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp; sigc::trackable::operator= </td>
264           <td>(</td>
265           <td class="paramtype">const <a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp;&#160;</td>
266           <td class="paramname"><em>src</em></td><td>)</td>
267           <td></td>
268         </tr>
269       </table>
270 </div><div class="memdoc">
271
272 </div>
273 </div>
274 <a class="anchor" id="ac3d61cdb452dc46fcdc8a8d42d9c079d"></a>
275 <div class="memitem">
276 <div class="memproto">
277       <table class="memname">
278         <tr>
279           <td class="memname"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp; sigc::trackable::operator= </td>
280           <td>(</td>
281           <td class="paramtype"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp;&amp;&#160;</td>
282           <td class="paramname"><em>src</em></td><td>)</td>
283           <td></td>
284         </tr>
285       </table>
286 </div><div class="memdoc">
287
288 </div>
289 </div>
290 <a class="anchor" id="a700a7b0a5059a9c8eda2b1a6eb6905f8"></a>
291 <div class="memitem">
292 <div class="memproto">
293       <table class="memname">
294         <tr>
295           <td class="memname">void sigc::trackable::remove_destroy_notify_callback </td>
296           <td>(</td>
297           <td class="paramtype"><a class="el" href="structsigc_1_1notifiable.html">notifiable</a>*&#160;</td>
298           <td class="paramname"><em>data</em></td><td>)</td>
299           <td> const</td>
300         </tr>
301       </table>
302 </div><div class="memdoc">
303
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>
308   </table>
309   </dd>
310 </dl>
311
312 </div>
313 </div>
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 &#160;<a href="http://www.doxygen.org/index.html">
318 <img class="footer" src="doxygen.png" alt="doxygen"/>
319 </a> 1.8.9.1
320 </small></address>
321 </body>
322 </html>