summaryrefslogtreecommitdiffstats
path: root/libavahi-core/timeeventq.h
blob: 69ff86078f5f1994f2340e3f587de865797e9b52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef footimeeventqhfoo
#define footimeeventqhfoo

typedef struct _AvahiTimeEventQueue AvahiTimeEventQueue;
typedef struct _AvahiTimeEvent AvahiTimeEvent;

#include "prioq.h"

struct _AvahiTimeEvent {
    AvahiTimeEventQueue *queue;
    AvahiPrioQueueNode *node;
    GTimeVal expiry;
    void (*callback)(AvahiTimeEvent *e, void *userdata);
    void *userdata;
};

struct _AvahiTimeEventQueue {
    GSource source;
    AvahiPrioQueue *prioq;
};

AvahiTimeEventQueue* avahi_time_event_queue_new(GMainContext *context, gint priority);
void avahi_time_event_queue_free(AvahiTimeEventQueue *q);

AvahiTimeEvent* avahi_time_event_queue_add(AvahiTimeEventQueue *q, const GTimeVal *timeval, void (*callback)(AvahiTimeEvent *e, void *userdata), void *userdata);
void avahi_time_event_queue_remove(AvahiTimeEventQueue *q, AvahiTimeEvent *e);

void avahi_time_event_queue_update(AvahiTimeEventQueue *q, AvahiTimeEvent *e, const GTimeVal *timeval);

AvahiTimeEvent* avahi_time_event_queue_root(AvahiTimeEventQueue *q);
AvahiTimeEvent* avahi_time_event_next(AvahiTimeEvent *e);




#endif