libquentier 0.8.0
The library for rich desktop clients of Evernote service
Loading...
Searching...
No Matches
Public Member Functions | List of all members
quentier::threading::TrackedTask< LockableObject, Function > Class Template Reference

#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
 

Detailed Description

template<typename LockableObject, typename Function>
class quentier::threading::TrackedTask< LockableObject, Function >

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};