1 | <?xml version="1.0" encoding="utf-8"?> |
---|
2 | <!-- |
---|
3 | Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com> |
---|
4 | |
---|
5 | Distributed under the Boost Software License, Version 1.0. |
---|
6 | (See accompanying file LICENSE_1_0.txt or copy at |
---|
7 | http://www.boost.org/LICENSE_1_0.txt) |
---|
8 | --> |
---|
9 | <!DOCTYPE header PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" |
---|
10 | "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd"> |
---|
11 | <header name="boost/signals/trackable.hpp"> |
---|
12 | <namespace name="boost"> |
---|
13 | <namespace name="signals"> |
---|
14 | <class name="trackable"> |
---|
15 | <purpose>Enables safe use of multicast callbacks.</purpose> |
---|
16 | |
---|
17 | <description> |
---|
18 | <para>The <code>trackable</code> class provides automatic |
---|
19 | disconnection of signals and slots when objects bound in |
---|
20 | slots (via pointer or reference) are destroyed. The |
---|
21 | <code>trackable</code> class may only be used as a public |
---|
22 | base class for some other class; when used as such, that |
---|
23 | class may be bound to function objects used as part of |
---|
24 | slots. The manner in which a <code>trackable</code> object |
---|
25 | tracks the set of signal-slot connections it is a part of is |
---|
26 | unspecified.</para> |
---|
27 | |
---|
28 | <para>The actual use of <code>trackable</code> is contingent |
---|
29 | on the presence of appropriate |
---|
30 | <functionname>visit_each</functionname> overloads for any |
---|
31 | type that may contain pointers or references to trackable |
---|
32 | objects.</para> |
---|
33 | </description> |
---|
34 | |
---|
35 | <constructor> |
---|
36 | <effects><para>Sets the list of connected slots to empty.</para></effects> |
---|
37 | <throws><para>Will not throw.</para></throws> |
---|
38 | </constructor> |
---|
39 | |
---|
40 | <constructor> |
---|
41 | <parameter name="other"> |
---|
42 | <paramtype>const <classname>trackable</classname>&</paramtype> |
---|
43 | </parameter> |
---|
44 | |
---|
45 | <effects><para>Sets the list of connected slots to empty.</para></effects> |
---|
46 | <throws><para>Will not throw.</para></throws> |
---|
47 | <rationale><para>Signal-slot connections can only be created via calls to an explicit connect method, and therefore cannot be created here when trackable objects are copied.</para></rationale> |
---|
48 | </constructor> |
---|
49 | |
---|
50 | <destructor> |
---|
51 | <effects><para>Disconnects all signal/slot connections that |
---|
52 | contain a pointer or reference to this trackable object that |
---|
53 | can be found by |
---|
54 | <functionname>visit_each</functionname>.</para></effects> |
---|
55 | </destructor> |
---|
56 | |
---|
57 | <copy-assignment> |
---|
58 | <parameter name="other"> |
---|
59 | <paramtype>const <classname>trackable</classname>&</paramtype> |
---|
60 | </parameter> |
---|
61 | |
---|
62 | <effects><para>Sets the list of connected slots to empty.</para></effects> |
---|
63 | <returns><para><code>*this</code></para></returns> |
---|
64 | <throws><para>Will not throw.</para></throws> |
---|
65 | <rationale><para>Signal-slot connections can only be created via calls to an explicit connect method, and therefore cannot be created here when trackable objects are copied.</para></rationale> |
---|
66 | </copy-assignment> |
---|
67 | </class> |
---|
68 | </namespace> |
---|
69 | </namespace> |
---|
70 | </header> |
---|