OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler 1.12.0
API documentation
Loading...
Searching...
No Matches
FutureBase Class Reference

Classes

struct  moving_init_t

Public Types

enum  

Public Member Functions

bool valid () const ONIXS_BATS_BOE_NOEXCEPT
ONIXS_CBOE_CFE_BOE_API bool is_ready () const
ONIXS_CBOE_CFE_BOE_API bool has_value () const
ONIXS_CBOE_CFE_BOE_API bool has_exception () const
ONIXS_CBOE_CFE_BOE_API FutureStatus::Enum wait (int timeoutInMs) const

Protected Member Functions

 FutureBase ()
ONIXS_CBOE_CFE_BOE_API FutureBase (const FutureBase &other) ONIXS_BATS_BOE_NOEXCEPT
ONIXS_CBOE_CFE_BOE_API FutureBaseoperator= (const FutureBase &other) ONIXS_BATS_BOE_NOEXCEPT
ONIXS_CBOE_CFE_BOE_API FutureBase (const System::FutureSharedState *state) ONIXS_BATS_BOE_NOEXCEPT
ONIXS_CBOE_CFE_BOE_API FutureBase (const System::FutureSharedState *state, moving_init_t) ONIXS_BATS_BOE_NOEXCEPT
ONIXS_CBOE_CFE_BOE_API ~FutureBase () ONIXS_BATS_BOE_NOEXCEPT
ONIXS_CBOE_CFE_BOE_API void swap (FutureBase &other) ONIXS_BATS_BOE_NOEXCEPT
ONIXS_CBOE_CFE_BOE_API const void * getValuePtr () const
ONIXS_CBOE_CFE_BOE_API void getVoid () const

Friends

class FutureHelper

Detailed Description

Definition at line 59 of file Future.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
InfiniteTimeout -1 

Definition at line 94 of file Future.h.

Constructor & Destructor Documentation

◆ FutureBase() [1/4]

FutureBase ( )
inlineprotected

Definition at line 108 of file Future.h.

◆ FutureBase() [2/4]

ONIXS_CBOE_CFE_BOE_API FutureBase ( const FutureBase & other)
protected

◆ FutureBase() [3/4]

ONIXS_CBOE_CFE_BOE_API FutureBase ( const System::FutureSharedState * state)
protected

Initializes the instance with shared state.

◆ FutureBase() [4/4]

ONIXS_CBOE_CFE_BOE_API FutureBase ( const System::FutureSharedState * state,
moving_init_t  )
protected

Initializes the instance with shared state.

◆ ~FutureBase()

ONIXS_CBOE_CFE_BOE_API ~FutureBase ( )
protected

Destroys a future object.

If this is the last reference to the asynchronous result associated with *this (if any), then destroy that asynchronous result.

Member Function Documentation

◆ getValuePtr()

ONIXS_CBOE_CFE_BOE_API const void * getValuePtr ( ) const
protected

◆ getVoid()

ONIXS_CBOE_CFE_BOE_API void getVoid ( ) const
protected

◆ has_exception()

ONIXS_CBOE_CFE_BOE_API bool has_exception ( ) const

Returns true if the asynchronous result associated with this Future has a stored exception, false otherwise.

Exceptions
std::logic_errorif this instance does not refer to a shared state.

◆ has_value()

ONIXS_CBOE_CFE_BOE_API bool has_value ( ) const

Returns true if the asynchronous result associated with this Future has a stored value, false otherwise.

Exceptions
std::logic_errorif this instance does not refer to a shared state.

◆ is_ready()

ONIXS_CBOE_CFE_BOE_API bool is_ready ( ) const

Returns true if the asynchronous result associated with this Future is ready (has a value or exception stored in the shared state), false otherwise.

There are often situations where a get() call on a Future may not be a blocking call, or is only a blocking call under certain circumstances. This method gives the ability to test for early completion and allows us to avoid associating a continuation, which needs to be scheduled with some non-trivial overhead and near-certain loss of cache efficiency.

Exceptions
std::logic_errorif this instance does not refer to a shared state.

◆ operator=()

ONIXS_CBOE_CFE_BOE_API FutureBase & operator= ( const FutureBase & other)
protected

◆ swap()

ONIXS_CBOE_CFE_BOE_API void swap ( FutureBase & other)
protected

◆ valid()

bool valid ( ) const
inline

Check if a future instance is associated with an asynchronous result.

Returns true if the *this has an associated asynchronous result, false otherwise.

Definition at line 65 of file Future.h.

◆ wait()

ONIXS_CBOE_CFE_BOE_API FutureStatus::Enum wait ( int timeoutInMs) const

Waits for the result to become available during the timeout.

Note
Calling wait on the same Future from multiple threads is not safe; the intended use is for each thread that waits on the same shared state to have a copy of a Future.
Exceptions
std::logic_errorif this instance does not refer to a shared state.

◆ FutureHelper

friend class FutureHelper
friend

Definition at line 147 of file Future.h.