#include "pw_containers/internal/generic_var_len_entry_queue.h"#include "pw_containers/internal/var_len_entry_queue_iterator.h"#include "pw_preprocessor/util.h"#include <cstddef>#include <cstdint>#include "pw_bytes/span.h"#include "pw_containers/internal/raw_storage.h"#include "pw_span/span.h"#include "pw_toolchain/constexpr_tag.h"Go to the source code of this file.
Classes | |
| class | pw::BasicInlineVarLenEntryQueue< T, kMaxSizeBytes > |
| class | pw::BasicInlineVarLenEntryQueue< T, containers::internal::kGenericSized > |
Namespaces | |
| namespace | pw |
| The Pigweed namespace. | |
Macros | |
| #define | PW_VARIABLE_LENGTH_ENTRY_QUEUE_HEADER_SIZE_UINT32 (3) |
| #define | _PW_VAR_QUEUE_SIZE_UINT32(max_size_bytes) |
| #define | _PW_VAR_QUEUE_CHECK_SIZE(max_size_bytes) |
| #define | PW_VARIABLE_LENGTH_ENTRY_QUEUE_DECLARE(variable, max_size_bytes) |
Functions | |
| void | pw_InlineVarLenEntryQueue_Init (uint32_t array[], size_t array_size_uint32) |
| pw_InlineVarLenEntryQueue_Iterator | pw_InlineVarLenEntryQueue_Begin (pw_InlineVarLenEntryQueue_Handle queue) |
| pw_InlineVarLenEntryQueue_ConstIterator | pw_InlineVarLenEntryQueue_ConstBegin (pw_InlineVarLenEntryQueue_ConstHandle queue) |
| pw_InlineVarLenEntryQueue_Iterator | pw_InlineVarLenEntryQueue_End (pw_InlineVarLenEntryQueue_Handle queue) |
| pw_InlineVarLenEntryQueue_ConstIterator | pw_InlineVarLenEntryQueue_ConstEnd (pw_InlineVarLenEntryQueue_ConstHandle queue) |
| bool | pw_InlineVarLenEntryQueue_Empty (pw_InlineVarLenEntryQueue_ConstHandle queue) |
| uint32_t | pw_InlineVarLenEntryQueue_Size (pw_InlineVarLenEntryQueue_ConstHandle queue) |
| uint32_t | pw_InlineVarLenEntryQueue_MaxSize (pw_InlineVarLenEntryQueue_ConstHandle queue) |
| uint32_t | pw_InlineVarLenEntryQueue_SizeBytes (pw_InlineVarLenEntryQueue_ConstHandle queue) |
| uint32_t | pw_InlineVarLenEntryQueue_MaxSizeBytes (pw_InlineVarLenEntryQueue_ConstHandle queue) |
| void | pw_InlineVarLenEntryQueue_Push (pw_InlineVarLenEntryQueue_Handle queue, const void *data, uint32_t data_size_bytes) |
| bool | pw_InlineVarLenEntryQueue_TryPush (pw_InlineVarLenEntryQueue_Handle queue, const void *data, const uint32_t data_size_bytes) |
| void | pw_InlineVarLenEntryQueue_PushOverwrite (pw_InlineVarLenEntryQueue_Handle queue, const void *data, uint32_t data_size_bytes) |
| void | pw_InlineVarLenEntryQueue_Pop (pw_InlineVarLenEntryQueue_Handle queue) |
| void | pw_InlineVarLenEntryQueue_Clear (pw_InlineVarLenEntryQueue_Handle queue) |
| uint32_t | pw_InlineVarLenEntryQueue_RawStorageSizeBytes (pw_InlineVarLenEntryQueue_ConstHandle queue) |
| void | pw_InlineVarLenEntryQueue_CopyEntries (pw_InlineVarLenEntryQueue_ConstHandle from, pw_InlineVarLenEntryQueue_Handle to) |
| void | pw_InlineVarLenEntryQueue_CopyEntriesOverwrite (pw_InlineVarLenEntryQueue_ConstHandle from, pw_InlineVarLenEntryQueue_Handle to) |
| void | pw_InlineVarLenEntryQueue_MoveEntries (pw_InlineVarLenEntryQueue_Handle from, pw_InlineVarLenEntryQueue_Handle to) |
| void | pw_InlineVarLenEntryQueue_MoveEntriesOverwrite (pw_InlineVarLenEntryQueue_Handle from, pw_InlineVarLenEntryQueue_Handle to) |
A InlineVarLenEntryQueue is a queue of inline variable-length binary entries. It is implemented as a ring (circular) buffer and supports operations to append entries and overwrite if necessary. Entries may be zero bytes up to the maximum size supported by the queue.
The InlineVarLenEntryQueue has a few interesting properties.
uint32_t-aligned memory.uint32_t. The memory is always in a valid state and may be parsed offline.This data structure is a much simpler version of
embed:rst:inline :cpp:class:`pw::ring_buffer::PrefixedEntryRingBuffer`
. Prefer this sized-entry ring buffer to PrefixedEntryRingBuffer when:
InlineVarLenEntryQueue provides complete C and C++ APIs. The InlineVarLenEntryQueue C++ class is structured similarly to pw::InlineQueue and pw::Vector.