1 #ifndef _DRAGONNET_PEER_H_
2 #define _DRAGONNET_PEER_H_
4 #include <dragonnet/addr.h>
10 DRAGONNET_PEER_CREATED,
11 DRAGONNET_PEER_ACTIVE,
15 typedef uint16_t DragonnetTypeId;
17 typedef struct dragonnet_peer {
19 DragonnetAddr laddr, raddr;
20 DragonnetPeerState state;
21 pthread_t recv_thread;
23 bool (*on_recv)(struct dragonnet_peer *, DragonnetTypeId, void *);
24 void (**on_recv_type)(struct dragonnet_peer *, void *);
29 DragonnetPeer *dragonnet_connect(char *addr);
30 void dragonnet_peer_set_recv_hook(DragonnetPeer *p, DragonnetTypeId type_id,
31 void (*on_recv)(struct dragonnet_peer *, void *));
32 void dragonnet_peer_run(DragonnetPeer *p);
33 void dragonnet_peer_close(DragonnetPeer *p);
34 void dragonnet_peer_delete(DragonnetPeer *p);