]> git.lizzy.rs Git - dragonnet.git/blobdiff - peer.h
Refactor type hooks
[dragonnet.git] / peer.h
diff --git a/peer.h b/peer.h
index 16c02f9121e657e4145ff2147f031286040b3aca..5dc06fe5b2e11115ffb555492038ac0908d0671f 100644 (file)
--- a/peer.h
+++ b/peer.h
@@ -3,8 +3,7 @@
 
 #include <pthread.h>
 #include <dragontype/number.h>
-
-#include "addr.h"
+#include <dragonnet/addr.h>
 
 typedef enum {
        DRAGONNET_PEER_CREATED,
@@ -18,12 +17,14 @@ typedef struct dragonnet_peer {
        DragonnetPeerState state;
        pthread_t recv_thread;
 
-       void (*on_recv_type)(struct dragonnet_peer *, u16);
+       void (**on_recv_type)(struct dragonnet_peer *, void *);
 
        pthread_rwlock_t mu;
 } DragonnetPeer;
 
-DragonnetPeer *dragonnet_connect(char *addr, void (*on_recv_type)(struct dragonnet_peer *, u16));
+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);