12 #ifndef ROC_CORE_LIST_NODE_H_
13 #define ROC_CORE_LIST_NODE_H_
54 if (list_data_.
list != NULL) {
56 "list node: can't call destructor for an element that is still in list");
66 mutable ListNodeData list_data_;
Base class for list element.
ListNodeData * list_node_data() const
Get list node data.
Base class for non-copyable objects.
#define ROC_CONTAINER_OF(ptr, type, member)
Cast a member of a structure out to the containing structure.
#define roc_panic(...)
Print error message and terminate program gracefully.
Commonly used types and functions.
ListNodeData * next
Next list element.
ListNodeData * prev
Previous list element.
void * list
The list this node is member of.
ListNode * container_of()
Get ListNode object that contains this ListData object.