32#ifndef ANJ_NET_WRAPPER_H
33# define ANJ_NET_WRAPPER_H
36# ifdef ANJ_NET_WITH_UDP
39# ifdef ANJ_NET_WITH_DTLS
42# ifdef ANJ_NET_WITH_NON_IP_BINDING
55# if defined(ANJ_NET_WITH_UDP)
59# if defined(ANJ_NET_WITH_DTLS)
63# if defined(ANJ_NET_WITH_NON_IP_BINDING)
65 return anj_non_ip_create_ctx(ctx, config);
78# if defined(ANJ_NET_WITH_UDP)
82# if defined(ANJ_NET_WITH_DTLS)
86# if defined(ANJ_NET_WITH_NON_IP_BINDING)
88 return anj_non_ip_connect(ctx, hostname, port);
102# if defined(ANJ_NET_WITH_UDP)
106# if defined(ANJ_NET_WITH_DTLS)
110# if defined(ANJ_NET_WITH_NON_IP_BINDING)
112 return anj_non_ip_send(ctx, bytes_sent, buf, length);
122 size_t *bytes_received,
126# if defined(ANJ_NET_WITH_UDP)
130# if defined(ANJ_NET_WITH_DTLS)
134# if defined(ANJ_NET_WITH_NON_IP_BINDING)
136 return anj_non_ip_recv(ctx, bytes_received, buf, length);
147# if defined(ANJ_NET_WITH_UDP)
151# if defined(ANJ_NET_WITH_DTLS)
155# if defined(ANJ_NET_WITH_NON_IP_BINDING)
157 return anj_non_ip_close(ctx);
168# if defined(ANJ_NET_WITH_UDP)
172# if defined(ANJ_NET_WITH_DTLS)
176# if defined(ANJ_NET_WITH_NON_IP_BINDING)
178 return anj_non_ip_cleanup_ctx(ctx);
188 int32_t *out_value) {
190# if defined(ANJ_NET_WITH_UDP)
194# if defined(ANJ_NET_WITH_DTLS)
198# if defined(ANJ_NET_WITH_NON_IP_BINDING)
200 return anj_non_ip_get_inner_mtu(ctx, out_value);
212# if defined(ANJ_NET_WITH_UDP)
216# if defined(ANJ_NET_WITH_DTLS)
220# if defined(ANJ_NET_WITH_NON_IP_BINDING)
222 return anj_non_ip_get_state(ctx, out_value);
233# if defined(ANJ_NET_WITH_UDP)
237# if defined(ANJ_NET_WITH_DTLS)
241# if defined(ANJ_NET_WITH_NON_IP_BINDING)
243 return anj_non_ip_queue_mode_rx_off(ctx);
Network backend interface for DTLS transport.
anj_net_cleanup_ctx_t anj_dtls_cleanup_ctx
Definition anj_dtls.h:40
anj_net_get_inner_mtu_t anj_dtls_get_inner_mtu
Definition anj_dtls.h:42
anj_net_create_ctx_t anj_dtls_create_ctx
Definition anj_dtls.h:37
anj_net_recv_t anj_dtls_recv
Definition anj_dtls.h:39
anj_net_get_state_t anj_dtls_get_state
Definition anj_dtls.h:43
anj_net_connect_t anj_dtls_connect
Definition anj_dtls.h:36
anj_net_queue_mode_rx_off_t anj_dtls_queue_mode_rx_off
Definition anj_dtls.h:44
anj_net_send_t anj_dtls_send
Definition anj_dtls.h:38
anj_net_close_t anj_dtls_close
Definition anj_dtls.h:35
Platform hooks for network transport integration.
#define ANJ_NET_ENOTSUP
Definition anj_net_api.h:77
anj_net_binding_type_t
Definition anj_net_api.h:89
@ ANJ_NET_BINDING_NON_IP
Definition anj_net_api.h:92
@ ANJ_NET_BINDING_DTLS
Definition anj_net_api.h:91
@ ANJ_NET_BINDING_UDP
Definition anj_net_api.h:90
struct anj_net_ctx_struct anj_net_ctx_t
Opaque network context handle.
Definition anj_net_api.h:227
anj_net_socket_state_t
Definition anj_net_api.h:95
static int anj_net_get_state(anj_net_binding_type_t type, anj_net_ctx_t *ctx, anj_net_socket_state_t *out_value)
Definition anj_net_wrapper.h:208
static int anj_net_create_ctx(anj_net_binding_type_t type, anj_net_ctx_t **ctx, const anj_net_config_t *config)
Definition anj_net_wrapper.h:51
static int anj_net_cleanup_ctx(anj_net_binding_type_t type, anj_net_ctx_t **ctx)
Definition anj_net_wrapper.h:165
static int anj_net_connect(anj_net_binding_type_t type, anj_net_ctx_t *ctx, const char *hostname, const char *port)
Definition anj_net_wrapper.h:73
static int anj_net_queue_mode_rx_off(anj_net_binding_type_t type, anj_net_ctx_t *ctx)
Definition anj_net_wrapper.h:230
static int anj_net_close(anj_net_binding_type_t type, anj_net_ctx_t *ctx)
Definition anj_net_wrapper.h:144
static int anj_net_recv(anj_net_binding_type_t type, anj_net_ctx_t *ctx, size_t *bytes_received, uint8_t *buf, size_t length)
Definition anj_net_wrapper.h:120
static int anj_net_get_inner_mtu(anj_net_binding_type_t type, anj_net_ctx_t *ctx, int32_t *out_value)
Definition anj_net_wrapper.h:186
static int anj_net_send(anj_net_binding_type_t type, anj_net_ctx_t *ctx, size_t *bytes_sent, const uint8_t *buf, size_t length)
Definition anj_net_wrapper.h:96
Network backend interface for Non-IP transport.
Network backend interface for UDP transport.
anj_net_send_t anj_udp_send
Definition anj_udp.h:38
anj_net_connect_t anj_udp_connect
Definition anj_udp.h:36
anj_net_close_t anj_udp_close
Definition anj_udp.h:35
anj_net_create_ctx_t anj_udp_create_ctx
Definition anj_udp.h:37
anj_net_recv_t anj_udp_recv
Definition anj_udp.h:39
anj_net_cleanup_ctx_t anj_udp_cleanup_ctx
Definition anj_udp.h:40
anj_net_get_state_t anj_udp_get_state
Definition anj_udp.h:43
anj_net_queue_mode_rx_off_t anj_udp_queue_mode_rx_off
Definition anj_udp.h:44
anj_net_get_inner_mtu_t anj_udp_get_inner_mtu
Definition anj_udp.h:42
Global configuration validation header for Anjay Lite.
Definition anj_net_api.h:206