libosmscout  0.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules
osmscout::CancelableFuture< T > Class Template Reference

Future provides mechanism to access result of asynchronous computation. More...

#include <CancelableFuture.h>

Classes

class  FutureBreaker
 
class  Promise
 
struct  State
 

Public Types

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

Public Member Functions

void Cancel ()
 Cancel the corresponding execution. More...
 
 CancelableFuture (CancelableFuture &&)=default
 
 CancelableFuture (const CancelableFuture &)=default
 
bool IsCanceled ()
 
void OnCancel (const CancelCallback &callback)
 Callback triggered when future is canceled. More...
 
void OnComplete (const DoneCallback &callback)
 Callback triggered on future complete. More...
 
CancelableFutureoperator= (CancelableFuture &&)=default
 
CancelableFutureoperator= (const CancelableFuture &)=default
 
std::future< T > StdFuture ()
 
std::optional< T > Value ()
 
virtual ~CancelableFuture ()=default
 

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.

References osmscout::CancelableFuture< T >::State::Cancel().

◆ IsCanceled()

◆ 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

References osmscout::CancelableFuture< T >::State::cancelCallbacks, osmscout::CancelableFuture< T >::State::canceled, osmscout::CancelableFuture< T >::State::mutex, and osmscout::CancelableFuture< T >::State::value.

Referenced by osmscout::CancelableFuture< T >::StdFuture().

◆ 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

References osmscout::CancelableFuture< T >::State::callbacks, osmscout::CancelableFuture< T >::State::canceled, osmscout::CancelableFuture< T >::State::mutex, and osmscout::CancelableFuture< T >::State::value.

Referenced by osmscout::CancelableFuture< T >::StdFuture().

◆ 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: