Slot Class Referenceabstract

#include <Pt/Slot.h>

Endpoint of a signal/slot connection. More...

Inherited by BasicSlot< R, A... >, BasicSlot< R, As... >, BasicSlot< void, As... >, and BasicSlot< R, As >.

Public Member Functions

virtual ~Slot ()
 Destructor.
 
virtual Slotclone () const =0
 Clone this object with new.
 
virtual const Callback * callable () const =0
 Returns the callable converted to the type-erased Callback interface. More...
 
virtual void onConnect (const Connection &c)=0
 Notifies of connects.
 
virtual void onDisconnect (const Connection &c)=0
 Notifies of disconnects.
 
virtual bool equals (const Slot &slot) const =0
 Returns true if two slots are equal in value.
 

Related Functions

template<typename R , typename BaseT , typename ClassT , typename... As>
ConstMethodSlot< R, ClassT, As... > slot (ClassT &object, R(BaseT::*method)(As...) const)
 Returns a slot object for the given object/member pair.
 
template<typename R , typename... As>
DelegateSlot< R, As... > slot (Delegate< R, As... > &delegate)
 Returns a slot object for the given delegate.
 
template<typename R , typename... As>
FunctionSlot< R, As... > slot (R(*function)(As...))
 Returns a slot object for the given free/static function.
 
template<typename L , typename SlotT = typename LambdaSlotTraits<L>::Slot>
SlotT slot (L &&lambda)
 Returns a deduced slot object for the given lambda.
 
template<typename L , typename SlotT = typename LambdaSlotTraits<L>::Slot>
SlotT slot (Connectable &context, L &&lambda)
 Returns a deduced slot object for the given lambda.
 
template<typename R , typename... A, typename T , typename L = typename TypeTraits<T>::Value>
LambdaSlot< L, R, A... > slot (T &&lambda)
 Returns a slot object for the given lambda.
 
template<typename R , typename... A, typename T , typename L = typename TypeTraits<T>::Value>
LambdaSlot< L, R, A... > slot (Connectable &context, T &&lambda)
 Returns a slot object for the given lambda.
 
template<typename R , typename BaseT , typename ClassT , typename... As>
MethodSlot< R, ClassT, As... > slot (ClassT &object, R(BaseT::*method)(As...))
 Returns a slot object for the given object/member pair.
 
template<typename... As>
SignalSlot< As... > slot (Signal< As... > &signal)
 Returns a slot object for the given signal.
 

Detailed Description

Slots can be constructed with the slot() function, which is overloaded for various types of callable entities, most notably functions or member functions. Slots are lightweight proxy-objects and one example is the Pt::MethodSlot, which allows to use a member function as a slot.

Member Function Documentation

◆ callable()

virtual const Callback* callable ( ) const
pure virtual

The concrete slot returns its stored callable converted to Callback via a derived-to-base conversion. Callers downcast the result to Callable<R, As...> or Invokable<As...> to invoke it.

Implemented in SignalSlot< As >, MethodSlot< R, ClassT, As >, LambdaSlot< L, R, A >, FunctionSlot< R, As >, DelegateSlot< R, As >, and ConstMethodSlot< R, ClassT, As >.