73 return (delegate1->
mfd_type - delegate2->mfd_type);
120 s =
format(s,
"covered:[");
void mfib_entry_delegate_remove(mfib_entry_t *mfib_entry, mfib_entry_delegate_type_t type)
fib_node_index_t mfd_entry_index
The MFIB entry object to which the delagate is attached.
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
u8 *(* mfib_entry_delegate_format_t)(const mfib_entry_delegate_t *fed, u8 *s)
typedef for printing a delegate
static fib_node_index_t mfib_entry_get_index(const mfib_entry_t *mfe)
u8 * format_mfib_entry_deletegate(u8 *s, va_list *args)
static void mfib_entry_delegate_init(mfib_entry_t *mfib_entry, mfib_entry_delegate_type_t type)
static int mfib_entry_delegate_cmp_for_sort(void *v1, void *v2)
mfib_entry_delegate_type_t mfd_type
The delagate type.
#define vec_del1(v, i)
Delete the element at index I.
static mfib_entry_delegate_t * mfib_entry_delegate_find_i(const mfib_entry_t *mfib_entry, mfib_entry_delegate_type_t type, u32 *index)
fib_node_list_t mfd_list
For the cover tracking.
enum mfib_entry_delegate_type_t_ mfib_entry_delegate_type_t
Delegate types.
A Delagate is a means to implmenet the Delagation design pattern; the extension of an objects functio...
mfib_entry_delegate_t * mfib_entry_delegate_get(const mfib_entry_t *mfib_entry, mfib_entry_delegate_type_t type)
mfib_entry_delegate_t * mfib_entry_delegate_find_or_add(mfib_entry_t *mfib_entry, mfib_entry_delegate_type_t fdt)
static u8 * mfib_entry_delegate_fmt_covered(const mfib_entry_delegate_t *fed, u8 *s)
Print a delegate that represents cover tracking.
Dependency list of covered entries.
#define vec_sort_with_function(vec, f)
Sort a vector using the supplied element comparison function.
#define vec_foreach(var, vec)
Vector iterator.
mfib_entry_delegate_t * fe_delegates
A vector of delegates.
u8 * fib_node_children_format(fib_node_list_t list, u8 *s)
static mfib_entry_delegate_format_t fed_formatters[]
A delegate type to formatter map.