libquentier 0.8.0
The library for rich desktop clients of Evernote service
|
#include <TrackedTask.h>
Public Member Functions | |
template<typename SomeLockableObject , typename SomeFunction > | |
constexpr | TrackedTask (SomeLockableObject &&someLockableObject, SomeFunction &&function) |
template<typename... Arguments, typename = std::enable_if_t< std::is_invocable_v<Function, Arguments...> || std::is_member_function_pointer_v<Function>>> | |
constexpr void | operator() (Arguments &&... arguments) |
template<typename... Arguments, typename = std::enable_if_t< std::is_invocable_v<Function, Arguments...> || std::is_member_function_pointer_v<Function>>> | |
constexpr void | operator() (Arguments &&... arguments) const |
Wrapper class which automates checking for the state of a lockable object. With this class code like this
auto task = [selfWeak = weak_from_this()] { auto self = selfWeak.lock(); if (!self) { return; } // otherwise do something };
can be written like this:
auto task = threading::TrackedTask{weak_from_this(), &MyClass::someMethod};