A lightweight version of std::future.
More...
#include <wpi/future.h>
|
| future () noexcept=default |
| Constructs an empty (invalid) future. More...
|
|
| future (future &&oth) noexcept |
|
| future (const future &)=delete |
|
template<typename R > |
| future (future< R > &&oth) noexcept |
|
| ~future () |
| Ignores the result of the future if it has not been retrieved. More...
|
|
future & | operator= (future &&oth) noexcept |
|
future & | operator= (const future &)=delete |
|
T | get () |
| Gets the value. More...
|
|
template<typename R , typename F > |
future< R > | then (PromiseFactory< R > &factory, F &&func) |
|
template<typename F , typename R = typename std::invoke_result_t<F&&, T&&>> |
future< R > | then (F &&func) |
|
bool | is_ready () const noexcept |
|
bool | valid () const noexcept |
| Checks if the future is valid. More...
|
|
void | wait () const |
| Waits for the promise to provide a value. More...
|
|
template<class Clock , class Duration > |
bool | wait_until (const std::chrono::time_point< Clock, Duration > &timeout_time) const |
| Waits for the promise to provide a value, or the specified time has been reached. More...
|
|
template<class Rep , class Period > |
bool | wait_for (const std::chrono::duration< Rep, Period > &timeout_duration) const |
| Waits for the promise to provide a value, or the specified amount of time has elapsed. More...
|
|
template<typename T>
class wpi::future< T >
A lightweight version of std::future.
Use either promise::get_future() or PromiseFactory::CreateFuture() to create.
- Template Parameters
-
◆ future() [1/4]
Constructs an empty (invalid) future.
◆ future() [2/4]
◆ future() [3/4]
◆ future() [4/4]
template<typename T >
template<typename R >
◆ ~future()
Ignores the result of the future if it has not been retrieved.
◆ get()
Gets the value.
Calls wait() if the value is not yet available. Can only be called once. The future will be marked invalid after the call.
- Returns
- The value provided by the corresponding promise.set_value().
◆ is_ready()
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ then() [1/2]
template<typename T >
template<typename F , typename R = typename std::invoke_result_t<F&&, T&&>>
◆ then() [2/2]
template<typename T >
template<typename R , typename F >
◆ valid()
Checks if the future is valid.
A default-constructed future or one where get() has been called is invalid.
- Returns
- True if valid
◆ wait()
Waits for the promise to provide a value.
Does not return until the value is available or the promise is destroyed (in which case a default-constructed value is "returned"). If the value has already been provided, returns immediately.
◆ wait_for()
template<typename T >
template<class Rep , class Period >
bool wpi::future< T >::wait_for |
( |
const std::chrono::duration< Rep, Period > & |
timeout_duration | ) |
const |
|
inline |
Waits for the promise to provide a value, or the specified amount of time has elapsed.
- Returns
- True if the promise provided a value, false if timed out.
◆ wait_until()
template<typename T >
template<class Clock , class Duration >
bool wpi::future< T >::wait_until |
( |
const std::chrono::time_point< Clock, Duration > & |
timeout_time | ) |
const |
|
inline |
Waits for the promise to provide a value, or the specified time has been reached.
- Returns
- True if the promise provided a value, false if timed out.
◆ promise< T >
◆ PromiseFactory< T >
The documentation for this class was generated from the following file: