5#ifndef MOLYBDEN_DELEGATE_HPP
6#define MOLYBDEN_DELEGATE_HPP
29template <
typename Args,
typename Action>
61 std::mutex callback_mutex_;
62 std::function<Signature> callback_;
64 void operator()(
const Args& args,
Action action);
66 friend class ObservableOwner;
69template <
typename Args,
typename Action>
71 std::function<Signature> callback) {
72 std::lock_guard<std::mutex> guard(callback_mutex_);
77template <
typename Args,
typename Action>
79 std::lock_guard<std::mutex> guard(callback_mutex_);
81 callback_(args, std::move(action));
85template <
typename Args,
typename Action>
87 std::lock_guard<std::mutex> guard(callback_mutex_);
The base API that implements classes which represent delegate's action.
Definition delegate_action.hpp:18
Delegates allow you to make decisions that affect the application behavior.
Definition delegate.hpp:30
void reset()
Resets the callback registered for this delegate.
Definition delegate.hpp:86
Delegate & operator=(std::function< Signature > callback)
Registers a callback to be invoked by this delegate.
Definition delegate.hpp:70
void(const Args &args, Action action) Signature
The callback's signature.
Definition delegate.hpp:35