5#ifndef MOLYBDEN_DELEGATE_HPP
6#define MOLYBDEN_DELEGATE_HPP
29template <
typename Args,
typename Action>
32 using ArgsType = Args;
64 std::mutex callback_mutex_;
65 std::function<Signature> callback_;
67 void operator()(
const Args& args,
Action action);
69 friend class ObservableOwner;
72template <
typename Args,
typename Action>
74 std::function<Signature> callback) {
75 std::lock_guard<std::mutex> guard(callback_mutex_);
80template <
typename Args,
typename Action>
82 std::lock_guard<std::mutex> guard(callback_mutex_);
84 callback_(args, std::move(action));
88template <
typename Args,
typename Action>
90 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:89
Delegate & operator=(std::function< Signature > callback)
Registers a callback to be invoked by this delegate.
Definition delegate.hpp:73
void(const Args &args, Action action) Signature
The callback's signature.
Definition delegate.hpp:38