BasicInlineAsyncQueue adds async PendHasSpace and PendNotEmpty methods to BasicInlineQueue.
BasicInlineAsyncQueue allows specifying the size_type. Larger size_types allow for larger queues, but they slightly increase the object's size. Users should typically reach for pw::InlineAsyncQueue, which uses a size_type of uint16_t.
BasicInlineAsyncQueue is NOT thread safe. External synchronization is required to share a BasicInlineAsyncQueue between threads. Public Member Functions | |
| BasicInlineAsyncQueue (size_type count, const_reference value) | |
| BasicInlineAsyncQueue (size_type count) | |
| template<typename InputIterator , typename = containers::internal::EnableIfInputIterator<InputIterator>> | |
| BasicInlineAsyncQueue (InputIterator start, InputIterator finish) | |
| BasicInlineAsyncQueue (const std::initializer_list< value_type > &list) | |
| BasicInlineAsyncQueue (const BasicInlineAsyncQueue &other) | |
| Copy constructs for matching capacity. | |
| template<size_t kOtherCapacity> | |
| BasicInlineAsyncQueue (const BasicInlineAsyncQueue< ValueType, SizeType, kOtherCapacity > &other) | |
| BasicInlineAsyncQueue (BasicInlineAsyncQueue &&other) | |
| Move constructs for matching capacity. | |
| template<size_t kOtherCapacity> | |
| BasicInlineAsyncQueue (BasicInlineAsyncQueue< ValueType, SizeType, kOtherCapacity > &&other) | |
| BasicInlineAsyncQueue & | operator= (const std::initializer_list< value_type > &list) |
| BasicInlineAsyncQueue & | operator= (const BasicInlineAsyncQueue &other) |
| Copy assigns from matching capacity. | |
| template<size_t kOtherCapacity> | |
| BasicInlineAsyncQueue & | operator= (const BasicInlineAsyncQueue< ValueType, SizeType, kOtherCapacity > &other) |
| BasicInlineAsyncQueue & | operator= (BasicInlineAsyncQueue &&other) |
| Move assigns from matching capacity. | |
| template<size_t kOtherCapacity> | |
| BasicInlineAsyncQueue & | operator= (BasicInlineAsyncQueue< ValueType, SizeType, kOtherCapacity > &&other) |
| template<typename OtherValueType , typename = containers::internal::EnableIfIterable<OtherValueType>> | |
| BasicInlineAsyncQueue & | operator= (const OtherValueType &other) |
| async2::Poll | PendHasSpace (async2::Context &context, size_type num=1) |
Returns pw::async2::Pending until space for num elements is available. | |
| async2::Poll | PendNotEmpty (async2::Context &context) |
Returns pw::async2::Pending until an element is available. | |
Static Public Member Functions | |
| static constexpr size_type | max_size () |
| static constexpr size_type | capacity () |
|
inline |
Copy constructs for mismatched capacity.
Note that this will result in a crash if kOtherCapacity < size().
|
inline |
Move constructs for mismatched capacity.
Note that this will result in a crash if kOtherCapacity < size().
|
inline |
Move assigns from mismatched capacity.
Note that this will result in a crash if kOtherCapacity < size().
|
inline |
Copy assigns from mismatched capacity.
Note that this will result in a crash if other.size() > capacity().