| 
    siplasplas
    
   A library for C++ reflection and introspection 
   | 
 
A simple multi-threaded message passing system. More...
Classes | |
| class | cpp::AsyncSink | 
| Implements an asynchronous signal sink suited for communication between different threads.  More... | |
| class | cpp::SignalEmitter | 
| Class that can send and receive signals from other emitters.  More... | |
| class | cpp::SignalSink | 
| Interface to the signals sink API.  More... | |
| class | cpp::SyncSink | 
| Implements a direct connection to the destination function.  More... | |
Functions | |
| template<typename Class > | |
| auto | cpp::emit (const Class &object) | 
| Emits a const signal from the given const SignalEmitter.  More... | |
| template<typename Class > | |
| auto | cpp::emit (Class &object) | 
| Emits a signal from the given SignalEmitter.  More... | |
A simple multi-threaded message passing system.
The siplasplas-signals module implements a simple message passing system where objects raise signals in the form of member functions which cause connected functions to be invoked.
Despite other message passing systems, siplasplas does not have a class representation for the connection concept, but represents connections as associations between SignalEmitters and SignalSinks. A signal sink is the destination of a raised signal, and keeps track of the callee function (And or callee object).
siplasplas-signals is not specifically designed with performance in mind but with simplicity of user code:
| auto cpp::emit | ( | const Class & | object | ) | 
Emits a const signal from the given const SignalEmitter.
This function provides a succint way to emit signals from objects by providing a fake object to pick the required signal. Overloaded signals are supported.
| Class | Type of the signal emitter. Static reflection metadata of this class should be available in the translation unit the emit() function is invoked. | 
| object | Object which emits the signal | 
| auto cpp::emit | ( | Class & | object | ) | 
Emits a signal from the given SignalEmitter.
This function provides a succint way to emit signals from objects by providing a fake object to pick the required signal. Overloaded signals are supported.
| Class | Type of the signal emitter. Static reflection metadata of this class should be available in the translation unit the emit() function is invoked. | 
| object | Object which emits the signal |