Clementine
Public Types | Public Member Functions | Friends | List of all members
entt::sigh< Ret(Args...)> Class Template Reference

Unmanaged signal handler. More...

#include <entt.hpp>

Public Types

using size_type = std::size_t
 Unsigned integer type.
 
using sink_type = sink< Ret(Args...)>
 Sink type.
 
template<typename Class >
using instance_type = Class *
 Instance type when it comes to connecting member functions. More...
 

Public Member Functions

size_type size () const ENTT_NOEXCEPT
 Number of listeners connected to the signal. More...
 
bool empty () const ENTT_NOEXCEPT
 Returns false if at least a listener is connected to the signal. More...
 
void publish (Args... args) const
 Triggers a signal. More...
 
template<typename Func >
void collect (Func func, Args... args) const
 Collects return values from the listeners. More...
 

Friends

class sink< Ret(Args...)>
 A sink is allowed to modify a signal.
 

Detailed Description

template<typename Ret, typename... Args>
class entt::sigh< Ret(Args...)>

Unmanaged signal handler.

It works directly with references to classes and pointers to member functions as well as pointers to free functions. Users of this class are in charge of disconnecting instances before deleting them.

This class serves mainly two purposes:

Template Parameters
RetReturn type of a function type.
ArgsTypes of arguments of a function type.

Member Typedef Documentation

◆ instance_type

template<typename Ret , typename... Args>
template<typename Class >
using entt::sigh< Ret(Args...)>::instance_type = Class *

Instance type when it comes to connecting member functions.

Template Parameters
ClassType of class to which the member function belongs.

Member Function Documentation

◆ collect()

template<typename Ret , typename... Args>
template<typename Func >
void entt::sigh< Ret(Args...)>::collect ( Func  func,
Args...  args 
) const
inline

Collects return values from the listeners.

The collector must expose a call operator with the following properties:

  • The return type is either void or such that it's convertible to bool. In the second case, a true value will stop the iteration.
  • The list of parameters is empty if Ret is void, otherwise it contains a single element such that Ret is convertible to it.
Template Parameters
FuncType of collector to use, if any.
Parameters
funcA valid function object.
argsArguments to use to invoke listeners.

◆ empty()

template<typename Ret , typename... Args>
bool entt::sigh< Ret(Args...)>::empty ( ) const
inline

Returns false if at least a listener is connected to the signal.

Returns
True if the signal has no listeners connected, false otherwise.

◆ publish()

template<typename Ret , typename... Args>
void entt::sigh< Ret(Args...)>::publish ( Args...  args) const
inline

Triggers a signal.

All the listeners are notified. Order isn't guaranteed.

Parameters
argsArguments to use to invoke listeners.

◆ size()

template<typename Ret , typename... Args>
size_type entt::sigh< Ret(Args...)>::size ( ) const
inline

Number of listeners connected to the signal.

Returns
Number of listeners currently connected.

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