List of intrusive nodes. More...
#include <cmsis-plus/utils/lists.h>
Inherits os::utils::static_double_list.
Public Types | |
using | difference_type = ptrdiff_t |
using | iterator = intrusive_list_iterator< T, N, MP, U > |
using | iterator_pointer = N * |
Type of reference to the iterator internal pointer. More... | |
using | pointer = U * |
using | reference = U & |
using | value_type = U |
Public Member Functions | |
Constructors & Destructor | |
intrusive_list () | |
Construct an intrusive list. More... | |
intrusive_list (bool clr) | |
Construct an intrusive list with controlled inits. More... | |
~intrusive_list () | |
Destruct the list. More... | |
Public Member Functions | |
void | link (reference node) |
Add a node to the tail of the list. More... | |
iterator | begin () |
Iterator begin. More... | |
iterator | end () const |
Iterator begin. More... | |
pointer | unlink_head (void) |
Unlink the first element from the list. More... | |
pointer | unlink_tail (void) |
Unlink the last element from the list. More... | |
Public Member Functions | |
bool | uninitialized (void) const |
Check if the list is unitialised. More... | |
void | clear (void) |
Clear the list. More... | |
bool | empty (void) const |
Check if the list is empty. More... | |
volatile static_double_list_links * | head (void) const |
Get the list head. More... | |
volatile static_double_list_links * | tail (void) const |
Get the list tail. More... | |
Protected Member Functions | |
pointer | get_pointer (iterator_pointer node) const |
Private Member Functions | |
void | insert_after (static_double_list_links &node, static_double_list_links *after) |
Insert a new node after existing node. More... | |
Protected Attributes | |
Private Member Variables | |
static_double_list_links | head_ |
A list node used to point to head and tail. More... | |
List of intrusive nodes.
T | Type of object that includes the intrusive node. |
N | Type of intrusive node. Must have the public members prev & next. |
MP | Name of the intrusive node member in object T. |
U | Type stored in the list, derived from T. |
using os::utils::intrusive_list< T, N, MP, U >::difference_type = ptrdiff_t |
using os::utils::intrusive_list< T, N, MP, U >::iterator = intrusive_list_iterator<T, N, MP, U> |
using os::utils::intrusive_list< T, N, MP, U >::iterator_pointer = N* |
using os::utils::intrusive_list< T, N, MP, U >::pointer = U* |
using os::utils::intrusive_list< T, N, MP, U >::reference = U& |
using os::utils::intrusive_list< T, N, MP, U >::value_type = U |
|
inline |
|
inline |
|
inline |
|
inline |
|
inherited |
|
inlineinherited |
|
inline |
|
inlineprotected |
|
inlineinherited |
|
protectedinherited |
void os::utils::intrusive_list< T, N, MP, U >::link | ( | reference | node | ) |
|
inlineinherited |
|
inlineinherited |
intrusive_list< T, N, MP, U >::pointer os::utils::intrusive_list< T, N, MP, U >::unlink_head | ( | void | ) |
intrusive_list< T, N, MP, U >::pointer os::utils::intrusive_list< T, N, MP, U >::unlink_tail | ( | void | ) |
|
protectedinherited |