1 #ifndef SIPLASPLAS_SIGNALS_SINK_HPP 2 #define SIPLASPLAS_SIGNALS_SINK_HPP 4 #include <siplasplas/reflection/dynamic/object_manip.hpp> 5 #include <siplasplas/signals/export.hpp> 52 template<
typename Caller,
typename Callee>
68 template<
typename Caller>
85 template<
typename... Args>
88 if(invokeWithoutCallee())
91 cpp::dynamic_reflection::pack_to_vector(
92 std::forward<Args>(args)...
99 cpp::dynamic_reflection::pack_to_vector(
100 _callee, std::forward<Args>(args)...
127 virtual bool pull() = 0;
130 virtual void invoke(
const std::vector<cpp::dynamic_reflection::Object>& args) = 0;
131 virtual bool invokeWithoutCallee()
const = 0;
134 cpp::dynamic_reflection::Object _caller, _callee;
139 #endif // SIPLASPLAS_SIGNALS_SINK_HPP SignalEmitter * callee() const
Gives the callee of the connection.
Definition: sink.hpp:112
void operator()(Args &&...args)
Invokes the sink with the given arguments.
Definition: sink.hpp:86
Class that can send and receive signals from other emitters.
Definition: emitter.hpp:66
SignalSink(Caller &caller, Callee &callee)
Constructs a sink given the connection caller and the callee.
Definition: sink.hpp:53
Definition: canary_allocator.hpp:7
SignalEmitter * caller() const
Gives the caller of the connection.
Definition: sink.hpp:122
Interface to the signals sink API.
Definition: sink.hpp:39
SignalSink(Caller &caller)
Constructs a sink given the connection caller object.
Definition: sink.hpp:69