sandbox
Loading...
Searching...
No Matches
sbx::signals::signal_base< Lockable, Args > Class Template Referencefinal
Inheritance diagram for sbx::signals::signal_base< Lockable, Args >:
sbx::signals::cleanable

Public Types

using lockable_type = Lockable
 

Public Member Functions

 signal_base (const signal_base &other)=delete
 
 signal_base (signal_base &&other)
 
auto operator= (const signal_base &other) -> signal_base &=delete
 
auto operator= (signal_base &&other) -> signal_base &
 
template<typename... As>
auto emit (As &&... args) -> void
 
template<typename... As>
auto operator() (As &&...args) -> void
 
template<typename... As>
auto operator+= (As &&... args) -> connection
 
template<std::invocable< Args... > Callable>
auto connect (Callable &&callable, group_id id=0) -> connection
 
template<typename MemberFnPtr , typename Object >
requires (std::is_invocable_v<MemberFnPtr, Object, Args...> && !is_observer_v<Object> && !is_weak_ptr_compatible_v<Object>)
auto connect (MemberFnPtr &&member_fn_ptr, Object &&object, group_id id=0) -> connection
 
template<std::invocable< Args... > Callable, typename Trackable >
requires (is_weak_ptr_compatible_v<Trackable>)
auto connect (Callable &&callable, Trackable &&trackable, group_id id=0) -> connection
 
template<typename... As>
auto connect_scoped (As &&... args) -> scoped_connection
 
template<typename Callable >
requires (std::is_invocable_v<Callable, Args...> || (std::is_member_function_pointer_v<Callable> && function_traits<Callable>::is_disconnectable_v))
auto disconnect (const Callable &callable) -> std::size_t
 
template<typename Object >
requires (!std::is_invocable_v<Object, Args...> && !std::is_member_function_pointer_v<Object>)
auto disconnect (const Object &object) -> std::size_t
 
template<typename Callable , typename Object >
auto disconnect (const Callable &callable, const Object &object) -> std::size_t
 
auto disconnect_all () -> void
 
void block () noexcept
 
void unblock () noexcept
 
bool blocked () const noexcept
 
virtual auto clean (memory::observer_ptr< slot_state > state) -> void=0
 

Protected Member Functions

auto clean (memory::observer_ptr< slot_state > state) -> void override
 
template<typename Condition >
requires (std::is_invocable_r_v<bool, Condition, const slot_ptr&>)
auto disconnect_if (Condition &&condition) -> std::size_t
 

Member Function Documentation

◆ clean()

template<lockable Lockable, typename... Args>
auto sbx::signals::signal_base< Lockable, Args >::clean ( memory::observer_ptr< slot_state state) -> void
inlineoverrideprotectedvirtual

The documentation for this class was generated from the following file: