µOS++ IIIe Reference 7.0.0
The third edition of µOS++, a POSIX inspired open source framework, written in C++
Loading...
Searching...
No Matches
os::rtos::internal::timer_node Class Reference

Double linked list node, with time stamp and timer. More...

#include <os-lists.h>

+ Inheritance diagram for os::rtos::internal::timer_node:

Public Member Functions

Constructors & Destructor
 timer_node (port::clock::timestamp_t ts, timer &tm)
 Construct a clock timer node.
 
virtual ~timer_node () override
 Destruct the node.
 
Public Member Functions
virtual void action (void) override
 Action to perform when the time stamp is reached.
 
Public Member Functions
void unlink (void)
 Remove the node from the list.
 
bool unlinked (void)
 Check if the node is unlinked.
 
static_double_list_linksnext (void) const
 
void next (static_double_list_links *n)
 
static_double_list_linksprev (void) const
 
void prev (static_double_list_links *n)
 

Public Attributes

Public Member Variables
timertmr
 Reference to waiting timer.
 
Public Member Variables
port::clock::timestamp_t timestamp
 Time stamp when the next action will be performed.
 

Protected Attributes

Private Member Variables
static_double_list_linksprev_
 Pointer to previous node.
 
static_double_list_linksnext_
 Pointer to next node.
 

Detailed Description

Double linked list node, with time stamp and timer.

Definition at line 315 of file os-lists.h.

Constructor & Destructor Documentation

◆ timer_node()

os::rtos::internal::timer_node::timer_node ( port::clock::timestamp_t  ts,
timer tm 
)

Construct a clock timer node.

Parameters
[in]tsTime stamp.
[in]tmReference to timer.

Definition at line 345 of file os-lists.cpp.

◆ ~timer_node()

os::rtos::internal::timer_node::~timer_node ( )
overridevirtual

Destruct the node.

Definition at line 355 of file os-lists.cpp.

Member Function Documentation

◆ action()

void os::rtos::internal::timer_node::action ( void  )
overridevirtual

Action to perform when the time stamp is reached.

Parameters
None.
Returns
Nothing.

Remove the node from the list and perform the timer actions.

Implements os::rtos::internal::timestamp_node.

Definition at line 367 of file os-lists.cpp.

◆ next() [1/2]

void os::utils::static_double_list_links::next ( static_double_list_links n)
inlineinherited

Definition at line 882 of file lists.h.

◆ next() [2/2]

static_double_list_links * os::utils::static_double_list_links::next ( void  ) const
inlineinherited

Definition at line 870 of file lists.h.

◆ prev() [1/2]

void os::utils::static_double_list_links::prev ( static_double_list_links n)
inlineinherited

Definition at line 888 of file lists.h.

◆ prev() [2/2]

static_double_list_links * os::utils::static_double_list_links::prev ( void  ) const
inlineinherited

Definition at line 876 of file lists.h.

◆ unlink()

void os::utils::static_double_list_links::unlink ( void  )
inherited

Remove the node from the list.

Returns
Nothing.

Update the neighbours to point to each other, skipping the node.

For more robustness, to prevent unexpected accesses, the links in the removed node are nullified.

Definition at line 68 of file lists.cpp.

◆ unlinked()

bool os::utils::static_double_list_links::unlinked ( void  )
inlineinherited

Check if the node is unlinked.

Return values
trueThe node is not linked.
falseThe node is linked to a list.

Definition at line 864 of file lists.h.

Member Data Documentation

◆ next_

static_double_list_links* os::utils::static_double_list_links::next_
protectedinherited

Pointer to next node.

Definition at line 154 of file lists.h.

◆ prev_

static_double_list_links* os::utils::static_double_list_links::prev_
protectedinherited

Pointer to previous node.

Definition at line 149 of file lists.h.

◆ timestamp

port::clock::timestamp_t os::rtos::internal::timestamp_node::timestamp
inherited

Time stamp when the next action will be performed.

Definition at line 208 of file os-lists.h.

◆ tmr

timer& os::rtos::internal::timer_node::tmr

Reference to waiting timer.

Definition at line 385 of file os-lists.h.


The documentation for this class was generated from the following files: