OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler  1.11.0
API documentation
FutureBase Class Reference

#include <OnixS/CboeCFE/Trading/BOE/Threading/Future.h>

Classes

struct  moving_init_t
 

Public Types

enum  { InfiniteTimeout = -1 }
 

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
Enumerator
InfiniteTimeout 

Definition at line 94 of file Future.h.

Constructor & Destructor Documentation

FutureBase ( )
inlineprotected

Definition at line 108 of file Future.h.

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

Initializes the instance with shared state.

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

Initializes the instance with shared state.

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

ONIXS_CBOE_CFE_BOE_API const void* getValuePtr ( ) const
protected
ONIXS_CBOE_CFE_BOE_API void getVoid ( ) const
protected
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.
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.
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.
ONIXS_CBOE_CFE_BOE_API FutureBase& operator= ( const FutureBase other)
protected
ONIXS_CBOE_CFE_BOE_API void swap ( FutureBase other)
protected
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.

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.

Friends And Related Function Documentation

friend class FutureHelper
friend

Definition at line 147 of file Future.h.


The documentation for this class was generated from the following file: