31#ifndef ETL_SIGNAL_INCLUDED
32#define ETL_SIGNAL_INCLUDED
38#if ETL_NOT_USING_CPP11 && !defined(ETL_IN_UNIT_TEST)
39#error NOT SUPPORTED FOR C++03 OR BELOW
98 template <
typename TFunction,
size_t Size,
typename TSlot = etl::delegate<TFunction>>
112 template <
typename...
TSlots>
118 static_assert(
sizeof...(slots) <= Size,
"Number of slots exceeds capacity");
132 ETL_ASSERT_OR_RETURN_VALUE(!full(), ETL_ERROR(
signal_full),
false);
139#if ETL_HAS_INITIALIZER_LIST && ETL_USING_CPP17
147 bool connect(std::initializer_list<const slot_type>
slots) ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS)
153 ETL_ASSERT_OR_RETURN_VALUE(!full(), ETL_ERROR(
signal_full),
false);
169 bool connect(
const span_type
slots) ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS)
175 ETL_ASSERT_OR_RETURN_VALUE(!full(), ETL_ERROR(
signal_full),
false);
196 etl::copy(etl::next(itr),
end_itr, itr);
201#if ETL_HAS_INITIALIZER_LIST && ETL_USING_CPP17
207 void disconnect(std::initializer_list<const slot_type>
slots) ETL_NOEXCEPT
251 ETL_CONSTEXPR14
bool empty()
const ETL_NOEXCEPT
259 ETL_CONSTEXPR14
bool full()
const ETL_NOEXCEPT
275 ETL_CONSTEXPR14 size_type
size()
const ETL_NOEXCEPT
277 return etl::distance(
begin(),
end());
283 ETL_CONSTEXPR14 size_type available()
const ETL_NOEXCEPT
294 template <
typename...
TArgs>
295 void operator()(
TArgs&&...
args)
const ETL_NOEXCEPT
319 (*slot_list_end) =
slot;
348 ETL_CONSTEXPR14 iterator
begin() ETL_NOEXCEPT
356 ETL_CONSTEXPR14 const_iterator
begin()
const ETL_NOEXCEPT
364 ETL_CONSTEXPR14 iterator
end() ETL_NOEXCEPT
372 ETL_CONSTEXPR14 const_iterator
end()
const ETL_NOEXCEPT
Span - Fixed Extent.
Definition span.h:138
ETL_NODISCARD ETL_CONSTEXPR14 bool any_of(TIterator begin, TIterator end, TUnaryPredicate predicate)
Definition algorithm.h:2116
bitset_ext
Definition absolute.h:39
size_t max_size() const
Returns the maximum number of items in the variant_pool.
Definition variant_pool_generator.h:395
ETL_CONSTEXPR TContainer::size_type size(const TContainer &container)
Definition iterator.h:1187
ETL_CONSTEXPR TContainer::iterator begin(TContainer &container)
Definition iterator.h:962
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_even_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:315
ETL_CONSTEXPR TContainer::iterator end(TContainer &container)
Definition iterator.h:992