namespace
InterconnectSignal/slot connections.
This library allows you to interconnect objects. See Signals and slots for more information.
This library is built if WITH_INTERCONNECT
is enabled when building Corrade. To use this library with CMake, you need to request the Interconnect
component of the Corrade
package and link to the Corrade::Interconnect
target:
find_package(Corrade REQUIRED Interconnect) # ... target_link_libraries(your-app Corrade::Interconnect)
See also Downloading and building Corrade and Using Corrade with CMake for more information.
Classes
- class Connection
- Connection.
- class Emitter
- Emitter object.
- class Receiver
- Receiver object.
-
template<std::class StateMachine
size_t states, std:: size_t inputs, class State, class Input> - State machine.
-
template<class State, class Input>class StateTransition
- Transition between states.
Functions
-
template<class EmitterObject, class Emitter, class ... Args>auto connect(EmitterObject& emitter, Interconnect::
Emitter:: Signal(Emitter::*)(Args...) signal, void(*)(Args...) slot) -> Connection - Connect signal to function slot.
-
template<class EmitterObject, class Emitter, class Lambda, class ... Args>auto connect(EmitterObject& emitter, Interconnect::
Emitter:: Signal(Emitter::*)(Args...) signal, Lambda slot) -> Connection -
template<class EmitterObject, class Emitter, class Receiver, class ReceiverObject, class ... Args>auto connect(EmitterObject& emitter, Interconnect::
Emitter:: Signal(Emitter::*)(Args...) signal, ReceiverObject& receiver, void(Receiver::*)(Args...) slot) -> Connection - Connect signal to member function slot.
Function documentation
template<class EmitterObject, class Emitter, class ... Args>
Connection Corrade:: Interconnect:: connect(EmitterObject& emitter,
Interconnect:: Emitter:: Signal(Emitter::*)(Args...) signal,
void(*)(Args...) slot)
Connect signal to function slot.
Parameters | |
---|---|
emitter | Emitter |
signal | Signal |
slot | Slot |
Connects given signal to compatible slot. emitter
must be subclass of Emitter, signal
must be implemented signal and slot
must be non-member function or non-capturing lambda with void
as return type. The argument count and types must be exactly the same.
See Emitter class documentation for more information about connections.
template<class EmitterObject, class Emitter, class Lambda, class ... Args>
Connection Corrade:: Interconnect:: connect(EmitterObject& emitter,
Interconnect:: Emitter:: Signal(Emitter::*)(Args...) signal,
Lambda slot)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<class EmitterObject, class Emitter, class Receiver, class ReceiverObject, class ... Args>
Connection Corrade:: Interconnect:: connect(EmitterObject& emitter,
Interconnect:: Emitter:: Signal(Emitter::*)(Args...) signal,
ReceiverObject& receiver,
void(Receiver::*)(Args...) slot)
Connect signal to member function slot.
Parameters | |
---|---|
emitter | Emitter |
signal | Signal |
receiver | Receiver |
slot | Slot |
Connects given signal to compatible slot in receiver object. emitter
must be subclass of Emitter, signal
must be implemented signal, receiver
must be subclass of Receiver and slot
must be non-constant member function with void
as return type. The argument count and types must be exactly the same.
See Emitter class documentation for more information about connections.