4 #include <dragonnet/send.h>
6 static void snd(DragonnetPeer *p, bool confirm, const void *buf, size_t n)
8 pthread_rwlock_rdlock(&p->mu);
10 pthread_rwlock_unlock(&p->mu);
12 ssize_t len = send(sock, buf, n, MSG_NOSIGNAL | (confirm ? 0 : MSG_MORE));
15 dragonnet_peer_close(p);
20 dragonnet_peer_delete(p);
24 void send_u8(DragonnetPeer *p, bool confirm, u8 v)
26 snd(p, confirm, &v, sizeof v);
29 void send_s8(DragonnetPeer *p, bool confirm, s8 v)
31 send_u8(p, confirm, (u8) v);
34 void send_u16(DragonnetPeer *p, bool confirm, u16 v)
37 snd(p, confirm, &be, sizeof be);
40 void send_s16(DragonnetPeer *p, bool confirm, s16 v)
42 send_u16(p, confirm, (u16) v);
45 void send_u32(DragonnetPeer *p, bool confirm, u32 v)
48 snd(p, confirm, &be, sizeof be);
51 void send_s32(DragonnetPeer *p, bool confirm, s32 v)
53 send_u32(p, confirm, (u32) v);
56 void send_u64(DragonnetPeer *p, bool confirm, u64 v)
59 snd(p, confirm, &be, sizeof be);
62 void send_s64(DragonnetPeer *p, bool confirm, s64 v)
64 send_u64(p, confirm, (u64) v);
67 void send_f32(DragonnetPeer *p, bool confirm, f32 v)
69 send_u32(p, confirm, (u32) v);
72 void send_f64(DragonnetPeer *p, bool confirm, f64 v)
74 send_u64(p, confirm, (u64) v);