btcsignals::signal::operator()

Execute all enabled callbacks for the signal. Rather than allowing for custom combiners, the behavior of any_of is hard-coded here.

Synopsis

Declared in <util/btcsignals.h>

template<typename... Args>
[[nodiscard, requires_capability(0x7f2e358a2f98), requires_capability(0x7f2e3039c748), requires_capability(0x7f2e2b9df638), requires_capability(0x7f2e41adc838), requires_capability(0x7f2e32120598), requires_capability(0x7f2e41e5ac28), requires_capability(0x7f2e27b0c288), requires_capability(0x7f2e411bb678)]]
result_type
operator()(Args&&... args) const;

Description

Callbacks which return void require special handling.

In order to avoid locking during the callbacks, the list of callbacks is cached before they are called. This allows a callback to call connect(), but the newly connected callback will not be run during the current signal invocation.

Note that the parameters are accepted as universal references, though they are not perfectly forwarded as that could cause a use-after-move if more than one callback is enabled.

Return Value

void for the null_value combiner, or true if any callback returned true for the any_of combiner.

NOTE

The return value should not be discarded.

Template Parameters

NameDescription
ArgsThe argument types forwarded to each connected callback.

Parameters

NameDescription
argsThe arguments passed to each enabled callback.