Voyant API 0.8.0
Loading...
Searching...
No Matches
udp_base_ffi.hpp
Go to the documentation of this file.
1// Copyright (c) 2024-2025 Voyant Photonics, Inc.
2// All rights reserved.
3
4#pragma once
5
6#include <cstdarg>
7#include <cstdint>
8#include <cstdlib>
9#include <ostream>
10#include <new>
11
16struct UdpReceiver;
17
22struct UdpSender;
23
33 uint8_t *data;
37 uintptr_t len;
42 bool success;
43};
44
49struct UdpSenderC {
54 UdpSender *_sender;
55};
56
57extern "C" {
58
73UdpReceiver *new_unicast_receiver_c(const char *bind_addr);
74
92UdpReceiver *new_multicast_receiver_c(const char *bind_addr,
93 const char *group_addr,
94 const char *interface_addr);
95
107void free_receiver(UdpReceiver *ptr);
108
128BufferResult receive_c(const UdpReceiver *receiver);
129
142void free_buffer(uint8_t *buffer, uintptr_t len);
143
159UdpSenderC new_unicast_sender_c(const char *bind_addr,
160 const char *target_addr);
161
180UdpSenderC new_multicast_sender_c(const char *bind_addr,
181 const char *group_addr,
182 uint32_t ttl);
183
201bool send_c(const UdpSenderC *sender,
202 const uint8_t *data,
203 uintptr_t len);
204
217
218} // extern "C"
Definition udp_base_ffi.hpp:28
uint8_t * data
Definition udp_base_ffi.hpp:33
bool success
Definition udp_base_ffi.hpp:42
uintptr_t len
Definition udp_base_ffi.hpp:37
Definition udp_base_ffi.hpp:49
UdpSender * _sender
Definition udp_base_ffi.hpp:54
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)