]> git.lizzy.rs Git - dragonnet.git/blobdiff - peer.h
Fix #include order
[dragonnet.git] / peer.h
diff --git a/peer.h b/peer.h
index 80e5a9518a294546eab64928824df60349053447..3f52fd021681f007ac251a37d5608f0c312c4a18 100644 (file)
--- a/peer.h
+++ b/peer.h
@@ -1,25 +1,30 @@
 #ifndef _DRAGONNET_PEER_H_
 #define _DRAGONNET_PEER_H_
 
+#include <dragonnet/addr.h>
+#include <dragontype/number.h>
 #include <pthread.h>
 
-#include "addr.h"
-
 typedef enum {
        DRAGONNET_PEER_CREATED,
        DRAGONNET_PEER_ACTIVE,
        DRAGONNET_PEER_CLOSED
 } DragonnetPeerState;
 
-typedef struct {
+typedef struct dragonnet_peer {
        int sock;
        DragonnetAddr laddr, raddr;
        DragonnetPeerState state;
+       pthread_t recv_thread;
+
+       void (**on_recv_type)(struct dragonnet_peer *, void *);
 
        pthread_rwlock_t mu;
 } DragonnetPeer;
 
 DragonnetPeer *dragonnet_connect(char *addr);
+void dragonnet_peer_set_recv_hook(DragonnetPeer *p, u16 type_id,
+               void (*on_recv)(struct dragonnet_peer *, void *));
 void dragonnet_peer_run(DragonnetPeer *p);
 void dragonnet_peer_close(DragonnetPeer *p);
 void dragonnet_peer_delete(DragonnetPeer *p);