/workspaces/astro/sol3-sdk/cpp/sol3/core/seq_ring.h Source File
|
Space-ng SDK
|
seq_ring.h
Go to the documentation of this file.
Minimal append-only byte sink for streaming writes.
Definition: stream_writer.h:9
Definition: seq_ring.h:176
SeqRingReader(void const *data, size_t data_size)
Initializes the reader with a read only memory range.
SeqRingReader()=default
SeqRingSlotView slot(size_t seq) const
uint64_t head() const
uint32_t slotType() const
flatbuffers::span< uint8_t const > trailerSpan() const
A read only view of a specific seq ring buffer slot.
Definition: seq_ring.h:73
SeqRingSlotView()=default
SeqRingSlotView(SeqRingSlotHeader const *header, size_t seq)
This is typically constructed by SeqRingReader.
size_t copyTo(void *dest, std::chrono::steady_clock::duration time_out) const
size_t readInto(IStreamWriter &stream, std::chrono::steady_clock::duration time_out) const
Copy into an append-only stream. Returns bytes written, 0 on timeout.
bool dirty(std::memory_order order=std::memory_order_seq_cst) const
Is the slot considered dirty?
Definition: seq_ring.h:120
static size_t minDataSize(size_t n_slots, size_t slot_size)
Minimum backing data size to hold n_slots of slot_size bytes.
SeqRingWriter(uint32_t slot_type, void *data, size_t data_size, size_t n_slots, size_t slot_size)
flatbuffers::span< uint8_t const > slotSpan(uint64_t seq) const
uint32_t slotType() const
uint64_t head() const
uint64_t write(void const *header_data, size_t header_size, void const *payload_data, size_t payload_size)
Definition: any_message_input.h:15
void atomicStoreMemcpy(void *dst, void const *src, size_t bytes)
size_t checkSize(size_t size, size_t min_size)
void * checkAlignedAs(void *data, size_t alignment)
void atomicLoadMemcpy(void *dst, void const *src, size_t bytes)
std::size_t alignUp(std::size_t v, std::size_t a)
Definition: seq_ring.h:64
Definition: seq_ring.h:55
Generated by