Files
OmniSocketGo/include/transport_udp.h

31 lines
1.2 KiB
C

#ifndef OMNI_TRANSPORT_UDP_H
#define OMNI_TRANSPORT_UDP_H
#include "latencylog.h"
#include "linux_timestamping.h"
#include "tx_timestamp_debug.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct udp_conn udp_conn_t;
udp_conn_t *udp_conn_dial(const char *server_addr, const char *bind_ip, const char *bind_device, int enable_timestamping, latency_logger_t *logger, const char *node_role, const char *node_id, tx_timestamp_debug_logger_t *debug_logger);
udp_conn_t *udp_conn_bind(const char *listen_addr, const char *bind_device, int enable_timestamping, latency_logger_t *logger, const char *node_role, const char *node_id, tx_timestamp_debug_logger_t *debug_logger);
int udp_conn_send(udp_conn_t *conn, const message_t *msg);
int udp_conn_send_to(udp_conn_t *conn, const message_t *msg, const struct sockaddr *addr, socklen_t addr_len);
int udp_conn_receive(udp_conn_t *conn, message_t *out_msg, struct sockaddr_storage *addr, socklen_t *addr_len);
int udp_conn_fd(const udp_conn_t *conn);
int udp_conn_local_addr(const udp_conn_t *conn, struct sockaddr_storage *addr, socklen_t *addr_len);
int udp_conn_close(udp_conn_t *conn);
void udp_conn_free(udp_conn_t *conn);
#ifdef __cplusplus
}
#endif
#endif