Caffa  1.1.0
C++ Application Framework for Embedded Systems with introspection
Public Types | Public Member Functions | List of all members
caffa::Signal< Args > Class Template Reference

#include <cafSignal.h>

Inheritance diagram for caffa::Signal< Args >:
Inheritance graph
[legend]
Collaboration diagram for caffa::Signal< Args >:
Collaboration graph
[legend]

Public Types

using MemberCallback = std::function< void(const SignalEmitter *, Args... args)>
 
using MemberCallbackAndActiveFlag = std::pair< MemberCallback, bool >
 

Public Member Functions

 Signal (const SignalEmitter *emitter)
 
template<typename ClassType >
void connect (ClassType *observer, void(ClassType::*method)(const SignalEmitter *, Args... args))
 
template<typename ClassType >
void connect (ClassType *observer, const MemberCallback &callback)
 
void disconnect (SignalObserver *observer) noexcept override
 
void send (Args... args) const
 
void block (SignalObserver *observer)
 
void unblock (SignalObserver *observer)
 
size_t observerCount () const
 
bool connected (const SignalObserver *observer) const
 

Detailed Description

template<typename... Args>
class caffa::Signal< Args >

General signal class. Connect any member function with the signature void(const Signal*, const SignalData* data) Connect with .connect(this, &Class::nameOfMethod) The method should accept that data may be nullptr


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