libosmscout 1.1.1
Loading...
Searching...
No Matches
osmscout::CancelableFuture< T > Class Template Reference

#include <libosmscout/include/osmscout/async/CancelableFuture.h>

Classes

struct  State
class  FutureBreaker
class  Promise

Public Types

using DoneCallback = std::function<void(T const&)>
using CancelCallback = std::function<void()>

Public Member Functions

 CancelableFuture (const CancelableFuture &)=default
 CancelableFuture (CancelableFuture &&)=default
virtual ~CancelableFuture ()=default
CancelableFuture & operator= (const CancelableFuture &)=default
CancelableFuture & operator= (CancelableFuture &&)=default
void Cancel ()
void OnComplete (const DoneCallback &callback)
void OnCancel (const CancelCallback &callback)
std::optional< T > Value ()
bool IsCanceled ()
std::future< T > StdFuture ()

Detailed Description

template<typename T>
class osmscout::CancelableFuture< T >

Future provides mechanism to access result of asynchronous computation. Instead of std::future, this one provides callbacks. So the consumer of the value doesn't need to be blocked.

Template Parameters
T

Member Typedef Documentation

◆ CancelCallback

template<typename T>
using osmscout::CancelableFuture< T >::CancelCallback = std::function<void()>

◆ DoneCallback

template<typename T>
using osmscout::CancelableFuture< T >::DoneCallback = std::function<void(T const&)>

Constructor & Destructor Documentation

◆ CancelableFuture() [1/2]

template<typename T>
osmscout::CancelableFuture< T >::CancelableFuture ( const CancelableFuture< T > & )
default

◆ CancelableFuture() [2/2]

template<typename T>
osmscout::CancelableFuture< T >::CancelableFuture ( CancelableFuture< T > && )
default

◆ ~CancelableFuture()

template<typename T>
virtual osmscout::CancelableFuture< T >::~CancelableFuture ( )
virtualdefault

Member Function Documentation

◆ Cancel()

template<typename T>
void osmscout::CancelableFuture< T >::Cancel ( )
inline

Cancel the corresponding execution. Cancel callbacks are executed in context of caller.

◆ IsCanceled()

template<typename T>
bool osmscout::CancelableFuture< T >::IsCanceled ( )
inline

◆ OnCancel()

template<typename T>
void osmscout::CancelableFuture< T >::OnCancel ( const CancelCallback & callback)
inline

Callback triggered when future is canceled. It is called from thread that is canceling the execution. When future is completed already, callback is called immediately in thread of caller.

Parameters
callback

◆ OnComplete()

template<typename T>
void osmscout::CancelableFuture< T >::OnComplete ( const DoneCallback & callback)
inline

Callback triggered on future complete. When future is canceled, it is never called. It is called from thread of value producer. When future is completed already, callback is called immediately in thread of caller.

Parameters
callback

◆ operator=() [1/2]

template<typename T>
CancelableFuture & osmscout::CancelableFuture< T >::operator= ( CancelableFuture< T > && )
default

◆ operator=() [2/2]

template<typename T>
CancelableFuture & osmscout::CancelableFuture< T >::operator= ( const CancelableFuture< T > & )
default

◆ StdFuture()

template<typename T>
std::future< T > osmscout::CancelableFuture< T >::StdFuture ( )
inline

◆ Value()

template<typename T>
std::optional< T > osmscout::CancelableFuture< T >::Value ( )
inline

The documentation for this class was generated from the following file: