Voyant API 0.2.1
Loading...
Searching...
No Matches
udp_base.hpp
Go to the documentation of this file.
1// Copyright (c) 2024-2025 Voyant Photonics, Inc.
2// All rights reserved.
3
4#include <cstdarg>
5#include <cstdint>
6#include <cstdlib>
7#include <ostream>
8#include <new>
9
14struct UdpReceiver;
15
20struct UdpSender;
21
31 uint8_t *data;
35 uintptr_t len;
40 bool success;
41};
42
47struct UdpSenderC {
52 UdpSender *_sender;
53};
54
55extern "C" {
56
71UdpReceiver *new_unicast_receiver_c(const char *bind_addr);
72
90UdpReceiver *new_multicast_receiver_c(const char *bind_addr,
91 const char *group_addr,
92 const char *interface_addr);
93
105void free_receiver(UdpReceiver *ptr);
106
126BufferResult receive_c(const UdpReceiver *receiver);
127
140void free_buffer(uint8_t *buffer, uintptr_t len);
141
157UdpSenderC new_unicast_sender_c(const char *bind_addr,
158 const char *target_addr);
159
178UdpSenderC new_multicast_sender_c(const char *bind_addr,
179 const char *group_addr,
180 uint32_t ttl);
181
199bool send_c(const UdpSenderC *sender,
200 const uint8_t *data,
201 uintptr_t len);
202
215
216} // extern "C"
Definition udp_base.hpp:26
uint8_t * data
Definition udp_base.hpp:31
bool success
Definition udp_base.hpp:40
uintptr_t len
Definition udp_base.hpp:35
Definition udp_base.hpp:47
UdpSender * _sender
Definition udp_base.hpp:52
UdpSenderC new_multicast_sender_c(const char *bind_addr, const char *group_addr, uint32_t ttl)
UdpSenderC new_unicast_sender_c(const char *bind_addr, const char *target_addr)
UdpReceiver * new_unicast_receiver_c(const char *bind_addr)
BufferResult receive_c(const UdpReceiver *receiver)
void free_sender(UdpSenderC sender)
bool send_c(const UdpSenderC *sender, const uint8_t *data, uintptr_t len)
void free_buffer(uint8_t *buffer, uintptr_t len)
UdpReceiver * new_multicast_receiver_c(const char *bind_addr, const char *group_addr, const char *interface_addr)
void free_receiver(UdpReceiver *ptr)