mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-08 20:28:43 +00:00
c0fc3e6718
The new MRT protocol is responsible for periodic RIB table dumps in the MRT format (RFC 6396). Also the existing code for BGP4MP MRT dumps is refactored and splitted between BGP to MRT protocols, will be more integrated into MRT in the future. Example: protocol mrt { table "*"; filename "%N_%F_%T.mrt"; period 60; } It is partially based on the old MRT code from Pavel Tvrdik.
50 lines
854 B
C
50 lines
854 B
C
/*
|
|
* BIRD Library -- Event Processing
|
|
*
|
|
* (c) 1999 Martin Mares <mj@ucw.cz>
|
|
*
|
|
* Can be freely distributed and used under the terms of the GNU GPL.
|
|
*/
|
|
|
|
#ifndef _BIRD_EVENT_H_
|
|
#define _BIRD_EVENT_H_
|
|
|
|
#include "lib/resource.h"
|
|
|
|
typedef struct event {
|
|
resource r;
|
|
void (*hook)(void *);
|
|
void *data;
|
|
node n; /* Internal link */
|
|
} event;
|
|
|
|
typedef list event_list;
|
|
|
|
extern event_list global_event_list;
|
|
|
|
event *ev_new(pool *);
|
|
void ev_run(event *);
|
|
#define ev_init_list(el) init_list(el)
|
|
void ev_enqueue(event_list *, event *);
|
|
void ev_schedule(event *);
|
|
void ev_postpone(event *);
|
|
int ev_run_list(event_list *);
|
|
|
|
static inline int
|
|
ev_active(event *e)
|
|
{
|
|
return e->n.next != NULL;
|
|
}
|
|
|
|
static inline event*
|
|
ev_new_set(pool *p, void (*hook)(void *), void *data)
|
|
{
|
|
event *e = ev_new(p);
|
|
e->hook = hook;
|
|
e->data = data;
|
|
return e;
|
|
}
|
|
|
|
|
|
#endif
|