SpECTRE
v2024.04.12
|
A collection of queues of asynchronously received data. More...
#include <LinkedMessageQueue.hpp>
Public Types | |
using | IdType = Id |
using | queue_tags_list = tmpl::list< QueueTags... > |
Public Member Functions | |
template<typename Tag > | |
void | insert (const LinkedMessageId< Id > &id_and_previous, typename Tag::type message) |
Insert data into a given queue at a given ID. All queues must receive data with the same collection of id_and_previous , but are not required to receive them in the same order. | |
std::optional< Id > | next_ready_id () const |
The next ID in the received sequence, if all queues have received messages at that ID. | |
tuples::TaggedTuple< QueueTags... > | extract () |
All the messages received at the time indicated by next_ready_id() . It is an error to call this function if next_ready_id() would return an empty optional. This function removes the stored messages from the queues, advancing the internal sequence ID. | |
void | pup (PUP::er &p) |
A collection of queues of asynchronously received data.
This class is designed to collect asynchronously received messages, possibly from multiple sources, until sufficient data has been received for processing. Each tag in QueueTags
defines a queue of messages of type Tag::type
.