ChimeraTK-cppext 01.05.02
Loading...
Searching...
No Matches
future_queue.hpp File Reference
#include "semaphore.hpp"
#include <atomic>
#include <cassert>
#include <future>
#include <vector>
+ Include dependency graph for future_queue.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cppext::MOVE_DATA
 Feature tag for future_queue: use std::move to store and retreive data to/from the queue. More...
 
class  cppext::SWAP_DATA
 Feature tag for future_queue: use std::swap to store and retreive data to/from the queue. More...
 
class  cppext::detail::TerminateInternalThread
 Exception to be pushed into the queue to signal a termination request for the internal thread of an async continuation. More...
 
struct  cppext::detail::shared_state_ptr
 shared_ptr-like smart pointer type for referencing the shared_state. More...
 
class  cppext::future_queue_base
 Type-independent base class for future_queue which does not depend on the template argument. More...
 
class  cppext::future_queue< T, FEATURES >
 A lockfree multi-producer single-consumer queue of a fixed length which the receiver can wait on in case the queue is empty. More...
 
struct  cppext::detail::when_any_notification_info
 
struct  cppext::detail::shared_state_base
 Internal base class for holding the data which is shared between multiple instances of the same queue. More...
 
struct  cppext::detail::shared_state< T >
 Internal class for holding the data which is shared between multiple instances of the same queue. More...
 
struct  cppext::detail::shared_state< void >
 Specialisation of the shared_state class for the type void. More...
 
struct  cppext::detail::continuation_process_deferred< T, FEATURES, TOUT, CALLABLE >
 
struct  cppext::detail::continuation_process_deferred< void, FEATURES, TOUT, CALLABLE >
 
struct  cppext::detail::continuation_process_deferred< T, FEATURES, void, CALLABLE >
 
struct  cppext::detail::continuation_process_deferred< void, FEATURES, void, CALLABLE >
 
struct  cppext::detail::continuation_process_deferred_wait< T, FEATURES, TOUT, CALLABLE >
 
struct  cppext::detail::continuation_process_deferred_wait< void, FEATURES, TOUT, CALLABLE >
 
struct  cppext::detail::continuation_process_deferred_wait< T, FEATURES, void, CALLABLE >
 
struct  cppext::detail::continuation_process_deferred_wait< void, FEATURES, void, CALLABLE >
 
struct  cppext::detail::continuation_process_async< T, FEATURES, TOUT, CALLABLE >
 
struct  cppext::detail::continuation_process_async< void, FEATURES, TOUT, CALLABLE >
 
struct  cppext::detail::continuation_process_async< T, FEATURES, void, CALLABLE >
 
struct  cppext::detail::continuation_process_async< void, FEATURES, void, CALLABLE >
 

Namespaces

namespace  cppext
 
namespace  cppext::detail
 Implementation of shared_state_ptr.
 

Functions

template<typename T >
shared_state_ptr cppext::detail::make_shared_state (size_t length)
 
template<typename ITERATOR_TYPE >
future_queue< size_tcppext::when_any (ITERATOR_TYPE begin, ITERATOR_TYPE end)
 Implementations of non-member functions.
 
template<typename ITERATOR_TYPE >
future_queue< voidcppext::when_all (ITERATOR_TYPE begin, ITERATOR_TYPE end)
 This function expects two forward iterators pointing to a region of a container of future_queue objects.
 
template<typename T >
void cppext::detail::data_assign (T &a, T &&b, MOVE_DATA)
 Helper function to realise the data assignment depending on the selected FEATURES tags.
 
template<typename T >
void cppext::detail::data_assign (T &a, T &&b, SWAP_DATA)
 
template<typename T , typename FEATURES , typename TOUT , typename CALLABLE >
continuation_process_deferred< T, FEATURES, TOUT, CALLABLEcppext::detail::make_continuation_process_deferred (future_queue< T, FEATURES > q_input, future_queue< TOUT > q_output, CALLABLE callable)
 
template<typename T , typename FEATURES , typename TOUT , typename CALLABLE >
continuation_process_deferred_wait< T, FEATURES, TOUT, CALLABLEcppext::detail::make_continuation_process_deferred_wait (future_queue< T, FEATURES > q_input, future_queue< TOUT > q_output, CALLABLE callable)
 
template<typename T , typename FEATURES , typename TOUT , typename CALLABLE >
continuation_process_async< T, FEATURES, TOUT, CALLABLEcppext::detail::make_continuation_process_async (future_queue< T, FEATURES > q_input, future_queue< TOUT > q_output, CALLABLE callable)