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_links * | next (void) const |
| void | next (static_double_list_links *n) |
| static_double_list_links * | prev (void) const |
| void | prev (static_double_list_links *n) |
Public Attributes | |
Public Member Variables | |
| timer & | tmr |
| 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_links * | prev_ |
| Pointer to previous node. | |
| static_double_list_links * | next_ |
| Pointer to next node. | |
Definition at line 310 of file os-lists.h.
| os::rtos::internal::timer_node::timer_node | ( | port::clock::timestamp_t | ts, |
| timer & | tm | ||
| ) |
| [in] | ts | Time stamp. |
| [in] | tm | Reference to timer. |
Definition at line 362 of file os-lists.cpp.
References os::trace::printf().
|
overridevirtual |
Definition at line 371 of file os-lists.cpp.
References os::trace::printf().
|
overridevirtual |
Remove the node from the list and perform the timer actions.
Implements os::rtos::internal::timestamp_node.
Definition at line 383 of file os-lists.cpp.
References tmr, and os::utils::static_double_list_links::unlink().
|
inlineinherited |
Definition at line 847 of file lists.h.
References os::utils::static_double_list_links::next_.
|
inlineinherited |
Definition at line 835 of file lists.h.
References os::utils::static_double_list_links::next_.
Referenced by os::rtos::internal::waiting_threads_list::begin(), os::rtos::internal::clock_timestamps_list::check_timestamp(), os::utils::static_double_list::clear(), os::utils::static_double_list::empty(), os::utils::static_double_list::head(), and os::utils::static_double_list::insert_after().
|
inlineinherited |
Definition at line 853 of file lists.h.
References os::utils::static_double_list_links::prev_.
|
inlineinherited |
Definition at line 841 of file lists.h.
References os::utils::static_double_list_links::prev_.
Referenced by os::utils::static_double_list::clear(), os::utils::static_double_list::insert_after(), os::rtos::internal::clock_timestamps_list::link(), os::rtos::internal::ready_threads_list::link(), os::rtos::internal::waiting_threads_list::link(), os::rtos::internal::terminated_threads_list::link(), os::utils::static_double_list::tail(), and os::utils::static_double_list::uninitialized().
|
inherited |
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 59 of file lists.cpp.
References os::utils::static_double_list_links::next_, os::utils::static_double_list_links::prev_, os::trace::printf(), and os::utils::static_double_list_links::unlinked().
Referenced by os::rtos::internal::timeout_thread_node::action(), action(), and os_rtos_idle_actions().
|
inlineinherited |
| true | The node is not linked. |
| false | The node is linked to a list. |
Definition at line 829 of file lists.h.
References os::utils::static_double_list_links::next_.
Referenced by os::utils::static_double_list_links::unlink().
|
protectedinherited |
|
protectedinherited |
Definition at line 132 of file lists.h.
Referenced by os::utils::double_list_links::double_list_links(), os::utils::static_double_list_links::prev(), os::utils::static_double_list_links::prev(), and os::utils::static_double_list_links::unlink().
|
inherited |
Definition at line 198 of file os-lists.h.
Referenced by os::rtos::internal::clock_timestamps_list::check_timestamp(), and os::rtos::internal::clock_timestamps_list::link().
| timer& os::rtos::internal::timer_node::tmr |
Definition at line 378 of file os-lists.h.
Referenced by action().