6 #ifndef UAVCAN_UTIL_LINKED_LIST_HPP_INCLUDED 7 #define UAVCAN_UTIL_LINKED_LIST_HPP_INCLUDED 53 T*
get()
const {
return root_; }
59 unsigned getLength()
const;
73 template <
typename Predicate>
74 void insertBefore(T* node, Predicate predicate);
80 void remove(
const T*
node);
96 node = node->getNextListNode();
101 template <
typename T>
110 node->setNextListNode(root_);
114 template <
typename T>
115 template <
typename Predicate>
128 node->setNextListNode(root_);
134 while (p->getNextListNode())
136 if (predicate(p->getNextListNode()))
140 p = p->getNextListNode();
142 node->setNextListNode(p->getNextListNode());
143 p->setNextListNode(node);
147 template <
typename T>
157 root_ = root_->getNextListNode();
162 while (p->getNextListNode())
164 if (p->getNextListNode() ==
node)
166 p->setNextListNode(p->getNextListNode()->getNextListNode());
169 p = p->getNextListNode();
176 #endif // UAVCAN_UTIL_LINKED_LIST_HPP_INCLUDED
void setNextListNode(T *node)
void insertBefore(T *node, Predicate predicate)
T * getNextListNode() const
unsigned getLength() const
void remove(const T *node)