16 #ifndef BLOOMBERG_QUANTUM_FUTURE_H 17 #define BLOOMBERG_QUANTUM_FUTURE_H 20 #include <quantum/quantum_shared_state.h> 21 #include <quantum/interface/quantum_icontext.h> 22 #include <quantum/interface/quantum_ifuture.h> 36 class Future :
public IThreadFuture<T>,
41 using Ptr = std::shared_ptr<Future<T>>;
46 bool valid() const final;
49 void wait() const final;
50 std::future_status
waitFor(
std::chrono::milliseconds timeMs) const final;
53 template <
class V = T>
56 template <
class V = T>
59 template <
class V = T>
67 template <
class V = T>
70 template <
class V = T>
73 template <
class V = T>
79 static
void* operator new(
size_t size);
80 static
void operator delete(
void* p);
95 #include <quantum/impl/quantum_future_impl.h> 97 #endif //BLOOMBERG_QUANTUM_FUTURE_H Definition: quantum_buffer_impl.h:22
BufferRetType< V > pull(bool &isBufferClosed)
Definition: quantum_future_impl.h:164
Shared state used between a Promise and a Future to exchange values.
Definition: quantum_shared_state.h:38
const NonBufferRetType< V > & getRef() const
Definition: quantum_future_impl.h:111
std::shared_ptr< ICoroFuture< T > > Ptr
Definition: quantum_icoro_future.h:38
Provides an interface to facilitate 'implicit' coroutine yielding within other primitives such as mut...
Definition: quantum_icoro_sync.h:34
Definition: quantum_stl_impl.h:23
std::future_status waitFor(std::chrono::milliseconds timeMs) const final
Waits for the future value up to a maximum 'timeMs' milliseconds.
Definition: quantum_future_impl.h:125
Class representing a promised value.
Definition: quantum_icoro_promise.h:77
static void deleter(Future< T > *p)
Definition: quantum_future_impl.h:191
std::enable_if_t<!Traits::IsBuffer< T >::value, typename Traits::IsBuffer< T >::Type > NonBufferRetType
Definition: quantum_traits.h:95
NonBufferRetType< V > get()
Definition: quantum_future_impl.h:103
Class representing a promised future. Can only be instantiated via a Promise object.
Definition: quantum_icoro_future.h:27
void wait() const final
Waits for the future value.
Definition: quantum_future_impl.h:118
typename Future< T >::Ptr FuturePtr
Definition: quantum_future.h:91
std::enable_if_t< Traits::IsBuffer< T >::value, typename Traits::IsBuffer< T >::Type > BufferRetType
Definition: quantum_traits.h:93
Configuration parameters for the Quantum library.
bool valid() const final
Determines if this future still has a shared state with the corresponding promise object.
Definition: quantum_future_impl.h:96
std::shared_ptr< Future< T > > Ptr
Definition: quantum_future.h:41