[#BloombergLP-bdlmt-Signaler_Node]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlmt.adoc[bdlmt]::Signaler&lowbar;Node
:relfileprefix: ../../
:mrdocs:

Shared implementation object backing a `Signaler`&period;

== Synopsis

Declared in `&lt;bdlmt&lowbar;signaler&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;PROT&gt;
class Signaler&lowbar;Node
    : public xref:bsl/enable_shared_from_this.adoc[bsl::enable&lowbar;shared&lowbar;from&lowbar;this&lt;Signaler&lowbar;Node&lt;t&lowbar;PROT&gt;&gt;]
----

== Description

Provides the implementation of a signaler&period; This object has a 1&hyphen;1 relationship with the `Signaler`, which has a shared pointer to it&period; This allows other objects to refer to it via shared and weak pointers&period; This allows `SignalerConnection` objects to outlive the &grave;Signaler &hyphen; Signaler&lowbar;Node&grave; pair, since they can test or lock weak pointers to see if the `Signaler&lowbar;Node` still exists when they are trying to disconnect themselves&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:bsl/enable_shared_from_this.adoc[bsl::enable&lowbar;shared&lowbar;from&lowbar;this&lt;Signaler&lowbar;Node&lt;t&lowbar;PROT&gt;&gt;]`
| Mixin enabling an object to obtain a `shared&lowbar;ptr` to itself&period;
|===

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlmt/Signaler_Node/2constructor.adoc[`Signaler&lowbar;Node`]         [.small]#[constructor]#
| Create a `Signaler&lowbar;Node` with no connected slots&period;
| xref:BloombergLP/bdlmt/Signaler_Node/connect.adoc[`connect`] 
| Connect `slot` to this signaler in the specified `group`&period;
| xref:BloombergLP/bdlmt/Signaler_Node/disconnectAllSlots.adoc[`disconnectAllSlots`] 
| Disconnect all slots connected to this signaler without waiting&period;
| xref:BloombergLP/bdlmt/Signaler_Node/disconnectAllSlotsAndWait.adoc[`disconnectAllSlotsAndWait`] 
| Disconnect all slots and wait for in&hyphen;progress signals to finish&period;
| xref:BloombergLP/bdlmt/Signaler_Node/disconnectGroup.adoc[`disconnectGroup`] 
| Disconnect all slots in `group` without waiting&period;
| xref:BloombergLP/bdlmt/Signaler_Node/disconnectGroupAndWait.adoc[`disconnectGroupAndWait`] 
| Disconnect all slots in `group` and wait for in&hyphen;progress signals&period;
| xref:BloombergLP/bdlmt/Signaler_Node/invoke.adoc[`invoke`] 
| Invoke all connected slots with the supplied arguments&period;
| xref:BloombergLP/bdlmt/Signaler_Node/notifyDisconnected.adoc[`notifyDisconnected`] 
| Notify this signaler that the slot identified by `slotMapKey` disconnected&period;
| xref:bsl/enable_shared_from_this/shared_from_this-0a2.adoc[`shared&lowbar;from&lowbar;this`] 
| `shared&lowbar;from&lowbar;this` overloads
| xref:BloombergLP/bdlmt/Signaler_Node/slotCount.adoc[`slotCount`] 
| Return the number of slots connected to this signaler&period;
| xref:BloombergLP/bdlmt/Signaler_Node/synchronizeWait.adoc[`synchronizeWait`] 
| Block until all signals currently being emitted on the signaler have completed&period;
| xref:bsl/enable_shared_from_this/weak_from_this-0e.adoc[`weak&lowbar;from&lowbar;this`] 
| `weak&lowbar;from&lowbar;this` overloads
|===


== Protected Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/enable_shared_from_this/operator_assign.adoc[`operator&equals;`] 
| Return `&ast;this`&period; This object is unchanged&period; Note that the specified `rhs` is not used&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
