QuantumLibrary
Bloomberg::quantum::IThreadFuture< T > Struct Template Reference

#include <quantum_ithread_future.h>

Inheritance diagram for Bloomberg::quantum::IThreadFuture< T >:
Bloomberg::quantum::IThreadFutureBase Bloomberg::quantum::Future< T >

Public Types

using ContextTag = ThreadContextTag
 
using Ptr = std::shared_ptr< IThreadFuture< T > >
 
using Impl = Future< T >
 
- Public Types inherited from Bloomberg::quantum::IThreadFutureBase
using Ptr = std::shared_ptr< IThreadFutureBase >
 

Public Member Functions

template<class V = T>
NonBufferRetType< V > get ()
 Get the future value. More...
 
template<class V = T>
const NonBufferRetType< V > & getRef () const
 Get a reference the future value. More...
 
template<class V = T>
BufferRetType< V > pull (bool &isBufferClosed)
 Pull a single value from the future buffer. More...
 
- Public Member Functions inherited from Bloomberg::quantum::IThreadFutureBase
virtual ~IThreadFutureBase ()=default
 Virtual destructor. More...
 
virtual bool valid () const =0
 Determines if this future still has a shared state with the promise object. More...
 
virtual void wait () const =0
 Waits for the future value. More...
 
virtual std::future_status waitFor (std::chrono::milliseconds timeMs) const =0
 Waits for the future value up to a maximum 'timeMs' milliseconds. More...
 

Member Typedef Documentation

◆ ContextTag

◆ Impl

template<class T>
using Bloomberg::quantum::IThreadFuture< T >::Impl = Future<T>

◆ Ptr

template<class T>
using Bloomberg::quantum::IThreadFuture< T >::Ptr = std::shared_ptr<IThreadFuture<T> >

Member Function Documentation

◆ get()

template<class T >
template<class V >
NonBufferRetType< V > Bloomberg::quantum::IThreadFuture< T >::get ( )

Get the future value.

Returns
The future value.
Note
Blocks until the future is ready or until an exception is thrown. Once this function returns, the future becomes invalidated (i.e. cannot be read again)

◆ getRef()

template<class T >
template<class V >
const NonBufferRetType< V > & Bloomberg::quantum::IThreadFuture< T >::getRef ( ) const

Get a reference the future value.

Returns
A reference to the future value.
Note
Blocks until the future is ready or until an exception is thrown. Contrary to get(), this function does not invalidate the future and as such may be read again.

◆ pull()

template<class T >
template<class V >
BufferRetType< V > Bloomberg::quantum::IThreadFuture< T >::pull ( bool &  isBufferClosed)

Pull a single value from the future buffer.

Template Parameters
BUFRepresents a class of type Buffer.
VThe type of value contained in Buffer.
Parameters
[out]isBufferClosedIndicates if this buffer is closed and no more Pull operations are allowed on it.
Returns
The next value pulled out from the front of the buffer.
Note
Method available for buffered futures only. Blocks until one value is retrieved from the buffer.