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

Dynamically&hyphen;allocated container for one slot, containing a function object that can be called by a signaler&period; Owned by a shared pointer in a skip list container in the `Signaler&lowbar;Node`&period; Also referred to by weak pointers from `SignalerConnection` objects&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;SlotNode
    : public xref:BloombergLP/bdlmt/Signaler_SlotNode_Base.adoc[Signaler&lowbar;SlotNode&lowbar;Base]
----

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bdlmt/Signaler_SlotNode_Base.adoc[Signaler&lowbar;SlotNode&lowbar;Base]`
| Provide a non&hyphen;template protocol base class for `Signaler&lowbar;SlotNode` so `SignalerConnection` objects, which are not templated, can refer to and manipulate `Signaler&lowbar;SlotNode` objects&period;
|===

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlmt/Signaler_SlotNode/SlotMapKey.adoc[`SlotMapKey`] 
| Defines a &quot;key&quot; used to index slots in an associative collection&period; The first element of the pair is the slot call group&semi; the second is the slot ID&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlmt/Signaler_SlotNode/2constructor.adoc[`Signaler&lowbar;SlotNode`]         [.small]#[constructor]#
| Create a `Signaler&lowbar;SlotNode` object associated with signaler node at the specified `signalerNodePtr` using the specified `slotMapKey` and with the specified `slot` callable object&period; Specify an `allocator` used to supply memory&period;
| xref:BloombergLP/bdlmt/Signaler_SlotNode/disconnect.adoc[`disconnect`]  [.small]#[virtual]#
| Disconnect this slot and return without waiting&period; If the slot was already disconnected, this function has no effect&period; Throws nothing&period; Note that it is guaranteed that this slot will not be called by a signal on the same signaler that begins after this function completes&period;
| xref:BloombergLP/bdlmt/Signaler_SlotNode/disconnectAndWait.adoc[`disconnectAndWait`]  [.small]#[virtual]#
| Disconnect this slot and block the calling thread pending the completion of signals being emitted on the signaler by any other threads&period; If the slot was already disconnected, this function has no effect on the slot&period; Throws nothing&period; The behavior is undefined if this function is called from a slot on the same signaler&period; Note that it is guaranteed that this slot will not be called by a signal on the same signaler that begins after this function completes, whether `wait` is `true` or not&period;
| xref:BloombergLP/bdlmt/Signaler_SlotNode/invoke.adoc[`invoke`] 
| Invoke the stored callback `c`, as if by `c(args&period;&period;&period;)`, where `args&period;&period;&period;` are the specified arguments `arg1`, `arg2`, `arg3`, etc&period;, except that the actual number of arguments passed to `c` is equal to the number of arguments for `t&lowbar;PROT`&period; If this slot is disconnected, this function has no effect&period;
| xref:BloombergLP/bdlmt/Signaler_SlotNode/isConnected.adoc[`isConnected`]  [.small]#[virtual]#
| Return `true` if this slot is connected to its associated signaler, and `false` otherwise&period;
| xref:BloombergLP/bdlmt/Signaler_SlotNode/notifyDisconnected.adoc[`notifyDisconnected`] 
| Notify this slot that is was disconnected from its associated signaler&period; Throws nothing&period; After this function completes, `isConnected()` returns `false`&period;
|===



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