]> git.lizzy.rs Git - dragonnet.git/blob - peer.h
Support windows
[dragonnet.git] / peer.h
1 #ifndef _DRAGONNET_PEER_H_
2 #define _DRAGONNET_PEER_H_
3
4 #include <pthread.h>
5 #include <stdbool.h>
6 #include <stdint.h>
7
8 typedef uint16_t DragonnetTypeId;
9
10 typedef struct dragonnet_peer {
11         int sock;
12         char *address;
13
14         pthread_t recv_thread;
15         pthread_mutex_t mtx;
16
17         void (*on_disconnect)(struct dragonnet_peer *);
18         bool (*on_recv)(struct dragonnet_peer *, DragonnetTypeId, void *);
19         void (**on_recv_type)(struct dragonnet_peer *, void *);
20
21         void *extra;
22 } DragonnetPeer;
23
24 DragonnetPeer *dragonnet_connect(char *addr);
25 void dragonnet_peer_run(DragonnetPeer *p);
26 void dragonnet_peer_shutdown(DragonnetPeer *p);
27
28 #endif