35#pragma clang diagnostic ignored "-Wc++98-compat"
73 assert(
prev_ ==
nullptr);
74#if defined(OS_TRACE_UTILS_LISTS)
80#if defined(OS_TRACE_UTILS_LISTS)
126#if defined(OS_TRACE_UTILS_LISTS)
127 trace::printf (
"%s() n=%p after %p\n", __func__, &node, after);
133 assert(node.
prev () ==
nullptr);
134 assert(node.
next () ==
nullptr);
138 assert(after->
next () !=
nullptr);
157#if defined(OS_TRACE_UTILS_LISTS_CONSTRUCT) || defined(OS_TRACE_UTILS_LISTS)
170#if defined(OS_TRACE_UTILS_LISTS_CONSTRUCT) || defined(OS_TRACE_UTILS_LISTS)
double_list()
Construct a list.
~double_list()
Destruct the list.
Statically allocated core of a double linked list, pointers to next, previous.
bool unlinked(void)
Check if the node is unlinked.
static_double_list_links * prev_
Pointer to previous node.
static_double_list_links * next(void) const
static_double_list_links * next_
Pointer to next node.
static_double_list_links * prev(void) const
void unlink(void)
Remove the node from the list.
static_double_list_links head_
A list node used to point to head and tail.
void insert_after(static_double_list_links &node, static_double_list_links *after)
Insert a new node after existing node.
bool empty(void) const
Check if the list is empty.
void clear(void)
Clear the list.
int printf(const char *format,...)
Write a formatted string to the trace device.