[#BloombergLP-bdlmt-Signaler_SlotNode] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlmt.adoc[bdlmt]::Signaler_SlotNode :relfileprefix: ../../ :mrdocs: Dynamically‐allocated container for one slot, containing a function object that can be called by a signaler. Owned by a shared pointer in a skip list container in the `Signaler_Node`. Also referred to by weak pointers from `SignalerConnection` objects. == Synopsis Declared in `<bdlmt_signaler.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_PROT> class Signaler_SlotNode : public xref:BloombergLP/bdlmt/Signaler_SlotNode_Base.adoc[Signaler_SlotNode_Base] ---- == Base Classes [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bdlmt/Signaler_SlotNode_Base.adoc[Signaler_SlotNode_Base]` | Provide a non‐template protocol base class for `Signaler_SlotNode` so `SignalerConnection` objects, which are not templated, can refer to and manipulate `Signaler_SlotNode` objects. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlmt/Signaler_SlotNode/SlotMapKey.adoc[`SlotMapKey`] | Defines a "key" used to index slots in an associative collection. The first element of the pair is the slot call group; the second is the slot ID. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlmt/Signaler_SlotNode/2constructor.adoc[`Signaler_SlotNode`] [.small]#[constructor]# | Create a `Signaler_SlotNode` object associated with signaler node at the specified `signalerNodePtr` using the specified `slotMapKey` and with the specified `slot` callable object. Specify an `allocator` used to supply memory. | xref:BloombergLP/bdlmt/Signaler_SlotNode/disconnect.adoc[`disconnect`] [.small]#[virtual]# | Disconnect this slot and return without waiting. If the slot was already disconnected, this function has no effect. Throws nothing. 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. | 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. If the slot was already disconnected, this function has no effect on the slot. Throws nothing. The behavior is undefined if this function is called from a slot on the same signaler. 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. | xref:BloombergLP/bdlmt/Signaler_SlotNode/invoke.adoc[`invoke`] | Invoke the stored callback `c`, as if by `c(args...)`, where `args...` are the specified arguments `arg1`, `arg2`, `arg3`, etc., except that the actual number of arguments passed to `c` is equal to the number of arguments for `t_PROT`. If this slot is disconnected, this function has no effect. | xref:BloombergLP/bdlmt/Signaler_SlotNode/isConnected.adoc[`isConnected`] [.small]#[virtual]# | Return `true` if this slot is connected to its associated signaler, and `false` otherwise. | xref:BloombergLP/bdlmt/Signaler_SlotNode/notifyDisconnected.adoc[`notifyDisconnected`] | Notify this slot that is was disconnected from its associated signaler. Throws nothing. After this function completes, `isConnected()` returns `false`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#