tobkit/libsigc++-2.2.3/docs/reference/html/structsigc_1_1trackable.html
2009-12-29 11:14:14 +00:00

254 lines
13 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libsigc++ 2.0: sigc::trackable Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#ffffff">
<table border="0" width="100%">
<tr>
<td width="10%" height="40"><img src="../../images/libsigc_logo.gif" alt="logo" border="0" width="100%" height="100%"/></td>
<td width="90%" height="40"><img src="../../images/top.gif" alt="top" width="100%" height="40"/></td>
</tr>
</table>
<center>
<a class="qindex" href="../../index.html">Main Page</a> &nbsp;
<a class="qindex" href="modules.html">Groups</a> &nbsp;
<a class="qindex" href="namespaces.html"> Namespaces</a> &nbsp;
</center>
<hr width="100%"/>
<!-- Generated by Doxygen 1.5.1 -->
<div class="nav">
<a class="el" href="namespacesigc.html">sigc</a>::<a class="el" href="structsigc_1_1trackable.html">trackable</a></div>
<h1>sigc::trackable Struct Reference<br>
<small>
[<a class="el" href="group__signal.html">Signals</a>]</small>
</h1><!-- doxytag: class="sigc::trackable" -->Base class for objects with auto-disconnection.
<a href="#_details">More...</a>
<p>
Inheritance diagram for sigc::trackable:<p><center><img src="structsigc_1_1trackable__inherit__graph.png" border="0" usemap="#sigc_1_1trackable__inherit__map" alt="Inheritance graph"></center>
<map name="sigc_1_1trackable__inherit__map">
<area href="structsigc_1_1internal_1_1slot__rep.html" shape="rect" coords="5,84,165,110" alt="">
<area href="structsigc_1_1signal__base.html" shape="rect" coords="189,84,317,110" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="structsigc_1_1trackable-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="namespacesigc_1_1internal.html#4bb021ada083c7580eeb254fa5de21e3">internal::func_destroy_notify</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#3338954d7565534bd945290b798e13ed">func_destroy_notify</a></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#09f5b2fe24c2ac1da8322ed0ea1553ea">trackable</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#7efefbcab4645648a366da3439242198">trackable</a> (const <a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp; src)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#7494fbad23a65932ff1457d00d4edaf5">operator=</a> (const <a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp; src)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#75587da09e30031db7a2519843f1f4fb">~trackable</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#ed95b40846f61b4f202348c71d5913ea">add_destroy_notify_callback</a> (void* data, <a class="el" href="structsigc_1_1trackable.html#3338954d7565534bd945290b798e13ed">func_destroy_notify</a> func) const</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a callback that is executed (notified) when the trackable object is detroyed. <a href="#ed95b40846f61b4f202348c71d5913ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#d1c1845ff5b356f13b32180077f83cff">remove_destroy_notify_callback</a> (void* data) const</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a callback previously installed with <a class="el" href="structsigc_1_1trackable.html#ed95b40846f61b4f202348c71d5913ea">add_destroy_notify_callback()</a>. <a href="#d1c1845ff5b356f13b32180077f83cff"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1trackable.html#f2e23cfe7adc1ca844a3350bbac557cb">notify_callbacks</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Execute and remove all previously installed callbacks. <a href="#f2e23cfe7adc1ca844a3350bbac557cb"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Base class for objects with auto-disconnection.
<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>
<a class="el" href="structsigc_1_1trackable.html#ed95b40846f61b4f202348c71d5913ea">add_destroy_notify_callback()</a> and <a class="el" href="structsigc_1_1trackable.html#d1c1845ff5b356f13b32180077f83cff">remove_destroy_notify_callback()</a> can be used to manually install and remove callbacks when notification of the object dying is needed.<p>
<a class="el" href="structsigc_1_1trackable.html#f2e23cfe7adc1ca844a3350bbac557cb">notify_callbacks()</a> invokes and removes all previously installed callbacks and can therefore be used to disconnect from all signals.<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>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="3338954d7565534bd945290b798e13ed"></a><!-- doxytag: member="sigc::trackable::func_destroy_notify" ref="3338954d7565534bd945290b798e13ed" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="namespacesigc_1_1internal.html#4bb021ada083c7580eeb254fa5de21e3">internal::func_destroy_notify</a> <a class="el" href="structsigc_1_1trackable.html#3338954d7565534bd945290b798e13ed">sigc::trackable::func_destroy_notify</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="09f5b2fe24c2ac1da8322ed0ea1553ea"></a><!-- doxytag: member="sigc::trackable::trackable" ref="09f5b2fe24c2ac1da8322ed0ea1553ea" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">sigc::trackable::trackable </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="7efefbcab4645648a366da3439242198"></a><!-- doxytag: member="sigc::trackable::trackable" ref="7efefbcab4645648a366da3439242198" args="(const trackable &amp;src)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">sigc::trackable::trackable </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp;&nbsp;</td>
<td class="paramname"> <em>src</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="75587da09e30031db7a2519843f1f4fb"></a><!-- doxytag: member="sigc::trackable::~trackable" ref="75587da09e30031db7a2519843f1f4fb" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">sigc::trackable::~trackable </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="7494fbad23a65932ff1457d00d4edaf5"></a><!-- doxytag: member="sigc::trackable::operator=" ref="7494fbad23a65932ff1457d00d4edaf5" args="(const trackable &amp;src)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp; sigc::trackable::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structsigc_1_1trackable.html">trackable</a>&amp;&nbsp;</td>
<td class="paramname"> <em>src</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="ed95b40846f61b4f202348c71d5913ea"></a><!-- doxytag: member="sigc::trackable::add_destroy_notify_callback" ref="ed95b40846f61b4f202348c71d5913ea" args="(void *data, func_destroy_notify func) const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void sigc::trackable::add_destroy_notify_callback </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsigc_1_1trackable.html#3338954d7565534bd945290b798e13ed">func_destroy_notify</a>&nbsp;</td>
<td class="paramname"> <em>func</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Add a callback that is executed (notified) when the trackable object is detroyed.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Passed into func upon notification. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>Callback executed upon destruction of the object. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="d1c1845ff5b356f13b32180077f83cff"></a><!-- doxytag: member="sigc::trackable::remove_destroy_notify_callback" ref="d1c1845ff5b356f13b32180077f83cff" args="(void *data) const" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void sigc::trackable::remove_destroy_notify_callback </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>data</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Remove a callback previously installed with <a class="el" href="structsigc_1_1trackable.html#ed95b40846f61b4f202348c71d5913ea">add_destroy_notify_callback()</a>.
<p>
The callback is not executed. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Parameter passed into previous call to <a class="el" href="structsigc_1_1trackable.html#ed95b40846f61b4f202348c71d5913ea">add_destroy_notify_callback()</a>. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="f2e23cfe7adc1ca844a3350bbac557cb"></a><!-- doxytag: member="sigc::trackable::notify_callbacks" ref="f2e23cfe7adc1ca844a3350bbac557cb" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void sigc::trackable::notify_callbacks </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Execute and remove all previously installed callbacks.
<p>
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="trackable_8h.html">trackable.h</a></ul>
<hr><address><small>
Generated for libsigc++ 2.0 by <a href="http://www.doxygen.org/index.html">
Doxygen</a> 1.5.1 &copy;&nbsp;1997-2001</small></address>
</body>
</html>