16 #ifndef BLOOMBERG_QUANTUM_ITHREAD_PROMISE_H 17 #define BLOOMBERG_QUANTUM_ITHREAD_PROMISE_H 19 #include <quantum/interface/quantum_icontext_base.h> 20 #include <quantum/interface/quantum_ipromise_base.h> 21 #include <quantum/interface/quantum_ifuture.h> 33 template <
template<
class>
class PROMISE,
class T>
35 IThreadPromise<PROMISE, T>,
39 using Ptr = std::shared_ptr<IThreadPromise<PROMISE, T>>;
55 template <
class V,
class = NonBufferType<T,V>>
64 template <
class V,
class = BufferType<T,V>>
72 template <
class V = T,
class = BufferRetType<V>>
76 template <
class T>
class Promise;
86 #endif //BLOOMBERG_QUANTUM_ITHREAD_PROMISE_H typename IThreadPromise< Promise, T >::Ptr ThreadPromisePtr
Definition: quantum_ithread_promise.h:82
Definition: quantum_buffer_impl.h:22
int closeBuffer()
Close a promise buffer.
Definition: quantum_promise_impl.h:45
Definition: quantum_traits.h:78
void push(V &&value)
Push a single value into the promise buffer.
Definition: quantum_promise_impl.h:38
Class representing a promised value.
Definition: quantum_icoro_promise.h:77
IThreadPromise(Impl *derived)
Constructor.
Definition: quantum_ithread_promise.h:45
Exposes methods to access and manipulate a non-coroutine promise (i.e. used in a thread)
Definition: quantum_ithread_promise.h:34
Definition: quantum_icontext_base.h:26
std::shared_ptr< IThreadPromise< Promise, T > > Ptr
Definition: quantum_ithread_promise.h:39
virtual ThreadFuturePtr< T > getIThreadFuture() const =0
Get the associated thread future.
typename IThreadFuture< T >::Ptr ThreadFuturePtr
Definition: quantum_ithread_future.h:69
int set(V &&value)
Set the promised value.
Definition: quantum_promise_impl.h:31