]> git.lizzy.rs Git - dragonnet.git/blob - listen.h
listener: cleanly shutdown accept thread, free on_recv_type
[dragonnet.git] / listen.h
1 #ifndef _DRAGONNET_LISTEN_H_
2 #define _DRAGONNET_LISTEN_H_
3
4 #include <dragonnet/peer.h>
5 #include <stdbool.h>
6
7 typedef struct {
8         int sock;
9         DragonnetAddr laddr;
10         pthread_t accept_thread;
11         bool active;
12
13         void (*on_connect)(DragonnetPeer *);
14         void (*on_disconnect)(DragonnetPeer *);
15         bool (*on_recv)(DragonnetPeer *, DragonnetTypeId, void *);
16         void (**on_recv_type)(DragonnetPeer *, void *);
17 } DragonnetListener;
18
19 DragonnetListener *dragonnet_listener_new(char *addr);
20 void dragonnet_listener_run(DragonnetListener *l);
21 void dragonnet_listener_close(DragonnetListener *l);
22 void dragonnet_listener_delete(DragonnetListener *l);
23
24 #endif