Seastar
High performance C++ framework for concurrent servers
|
Like promise except that its counterpart is shared_future instead of future.
When the shared_promise is made ready, every waiter is also made ready.
Like the shared_future, the types in the parameter pack T must all be copy-constructible.
#include <seastar/core/shared_future.hh>
Public Types | |
using | shared_future_type = shared_future< T... > |
using | future_type = typename shared_future_type::future_type |
using | promise_type = typename shared_future_type::promise_type |
using | clock = typename shared_future_type::clock |
using | time_point = typename shared_future_type::time_point |
using | value_tuple_type = typename shared_future_type::value_tuple_type |
Public Member Functions | |
shared_promise (const shared_promise &)=delete | |
shared_promise (shared_promise &&)=default | |
shared_promise & | operator= (shared_promise &&)=default |
future_type | get_shared_future (time_point timeout=time_point::max()) const noexcept |
Gets new future associated with this promise. If the promise is not resolved before timeout the returned future will resolve with timed_out_error. This instance doesn't have to be kept alive until the returned future resolves. | |
future_type | get_shared_future (abort_source &as) const noexcept |
Gets new future associated with this promise. If the promise is not resolved before abort source is triggered the returned future will resolve with abort_requests_exception. This instance doesn't have to be kept alive until the returned future resolves. | |
void | set_value (const value_tuple_type &result) noexcept(copy_noexcept) |
Sets the shared_promise's value (as tuple; by copying), same as normal promise. | |
void | set_value (value_tuple_type &&result) noexcept |
Sets the shared_promise's value (as tuple; by moving), same as normal promise. | |
template<typename... A> | |
void | set_value (A &&... a) noexcept |
Sets the shared_promise's value (variadic), same as normal promise. | |
void | set_exception (std::exception_ptr ex) noexcept |
Marks the shared_promise as failed, same as normal promise. | |
template<typename Exception > | |
void | set_exception (Exception &&e) noexcept |
Marks the shared_promise as failed, same as normal promise. | |
bool | available () const noexcept |
Returns true if the underlying future is available (ready or failed) | |
bool | failed () const noexcept |
Returns true if the underlying future is failed. | |