diff options
| author | Mikaƫl Capelle <capelle.mikael@gmail.com> | 2023-07-09 17:36:03 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-09 17:36:03 +0200 |
| commit | ef94aee28464039672b277243a0181ae93550d6c (patch) | |
| tree | 0575a68af5f154e9d6d0738edbaefb16a11d6f5c /src/proxyutils.h | |
| parent | 7d6cb8528d20e36a4cee822263865ee2f7f32481 (diff) | |
| parent | 3de050e9c03e553f7ae3f780f6bd080a30ae123e (diff) | |
Merge pull request #1839 from Holt59/ci/initial-gh-action-for-build
Clang-Format + Github Workflow
Diffstat (limited to 'src/proxyutils.h')
| -rw-r--r-- | src/proxyutils.h | 63 |
1 files changed, 36 insertions, 27 deletions
diff --git a/src/proxyutils.h b/src/proxyutils.h index 6c85ba14..7aebf315 100644 --- a/src/proxyutils.h +++ b/src/proxyutils.h @@ -5,37 +5,46 @@ #include "organizerproxy.h" -namespace MOShared { +namespace MOShared +{ - template <class Fn, class T = int> - auto callIfPluginActive(OrganizerProxy* proxy, Fn&& callback, T defaultReturn = T{}) { - return [fn = std::forward<Fn>(callback), proxy, defaultReturn](auto&& ...args) { - if (proxy->isPluginEnabled(proxy->plugin())) { - return fn(std::forward<decltype(args)>(args)...); +template <class Fn, class T = int> +auto callIfPluginActive(OrganizerProxy* proxy, Fn&& callback, T defaultReturn = T{}) +{ + return [fn = std::forward<Fn>(callback), proxy, defaultReturn](auto&&... args) { + if (proxy->isPluginEnabled(proxy->plugin())) { + return fn(std::forward<decltype(args)>(args)...); + } else { + if constexpr (!std::is_same_v< + std::invoke_result_t<std::decay_t<Fn>, decltype(args)...>, + void>) { + return defaultReturn; } - else { - if constexpr (!std::is_same_v<std::invoke_result_t<std::decay_t<Fn>, decltype(args)... >, void>) { - return defaultReturn; - } - } - }; - } - - // We need to connect to the organizer. - template <class Signal, class T = int> - auto callSignalIfPluginActive(OrganizerProxy* proxy, const Signal& signal, T defaultReturn = T{}) { - return callIfPluginActive(proxy, [&signal](auto&&... args) { - return signal(std::forward<decltype(args)>(args)...); - }, defaultReturn); - } + } + }; +} - template <class Signal, class T = int> - auto callSignalAlways(const Signal& signal) { - return [&signal](auto&&... args) { - return signal(std::forward<decltype(args)>(args)...); - }; - } +// We need to connect to the organizer. +template <class Signal, class T = int> +auto callSignalIfPluginActive(OrganizerProxy* proxy, const Signal& signal, + T defaultReturn = T{}) +{ + return callIfPluginActive( + proxy, + [&signal](auto&&... args) { + return signal(std::forward<decltype(args)>(args)...); + }, + defaultReturn); +} +template <class Signal, class T = int> +auto callSignalAlways(const Signal& signal) +{ + return [&signal](auto&&... args) { + return signal(std::forward<decltype(args)>(args)...); + }; } +} // namespace MOShared + #endif |
