24RCSIDH(fr_rb_expire_h,
"$Id: 5789be97b2c4dbf2276a396a2975bbf357aceac1 $")
30#include <freeradius-devel/util/rb.h>
31#include <freeradius-devel/util/dlist.h>
50#define fr_rb_expire_inline_talloc_init(_expire, _type, _field, _data_cmp, _data_free, _lifetime) \
52 fr_rb_inline_talloc_init(&(_expire)->tree, _type, _field.node, _data_cmp, _data_free); \
53 fr_dlist_init(&(_expire)->head, _type, _field.entry); \
54 (_expire)->lifetime = _lifetime; \
55 (_expire)->last_expiry = fr_time(); \
Head of a doubly linked list.
Entry in a doubly linked list.
The main red black tree structure.
bool fr_rb_expire_insert(fr_rb_expire_t *expire, void *data, fr_time_t now)
Attempt to find current data in the tree, if it does not exist insert it.
void fr_rb_expire_update(fr_rb_expire_t *expire, void *data, fr_time_t now)
dlist for expiring old entries
A time delta, a difference in time measured in nanoseconds.