16 #ifndef BLOOMBERG_QUANTUM_ICORO_FUTURE_H 17 #define BLOOMBERG_QUANTUM_ICORO_FUTURE_H 19 #include <quantum/interface/quantum_icontext_base.h> 20 #include <quantum/interface/quantum_icoro_future_base.h> 21 #include <quantum/quantum_traits.h> 38 using Ptr = std::shared_ptr<ICoroFuture<T>>;
46 template <
class V = T>
54 template <
class V = T>
64 template <
class V = T>
76 #endif //BLOOMBERG_QUANTUM_ICORO_FUTURE_H Exposes methods to access a coroutine-compatible future.
Definition: quantum_icoro_future_base.h:32
Definition: quantum_buffer_impl.h:22
typename ICoroFuture< T >::Ptr CoroFuturePtr
Definition: quantum_icoro_future.h:72
std::shared_ptr< ICoroFuture< T > > Ptr
Definition: quantum_icoro_future.h:38
std::shared_ptr< ICoroSync > Ptr
Definition: quantum_icoro_sync.h:36
Exposes methods to access a coroutine-compatible future.
Definition: quantum_icoro_future.h:35
std::enable_if_t<!Traits::IsBuffer< T >::value, typename Traits::IsBuffer< T >::Type > NonBufferRetType
Definition: quantum_traits.h:95
Class representing a promised future. Can only be instantiated via a Promise object.
Definition: quantum_icoro_future.h:27
const NonBufferRetType< V > & getRef(ICoroSync::Ptr sync) const
Get a reference the future value.
Definition: quantum_future_impl.h:75
std::enable_if_t< Traits::IsBuffer< T >::value, typename Traits::IsBuffer< T >::Type > BufferRetType
Definition: quantum_traits.h:93
BufferRetType< V > pull(ICoroSync::Ptr sync, bool &isBufferClosed)
Pull a single value from the future buffer.
Definition: quantum_future_impl.h:82
Definition: quantum_icontext_base.h:25
NonBufferRetType< V > get(ICoroSync::Ptr sync)
Get the future value.
Definition: quantum_future_impl.h:68