XROAD
xroad_sock.h
Go to the documentation of this file.
1 #pragma once
7 #include "xroad_sock_fwd.h"
8 #include <common/xroad_string.h>
9 #include <stdlib.h>
10 
11 #ifdef __cplusplus
12 extern "C"
13 {
14 #endif
15 
16 #define XROAD_SOCK_OPT_SO_NODELAY 1
17 #define XROAD_SOCK_OPT_SO_REUSE_ADDR 2
18 #define XROAD_SOCK_OPT_SO_KEEP_ALIVE 3
19 #define XROAD_SOCK_OPT_BUF_SIZE 4
20 #define XROAD_SOCK_OPT_BUF_MAX_SIZE 5
21 #define XROAD_SOCK_OPT_MAX_CLNT_CONN 6
22 #define XROAD_SOCK_OPT_SO_LINGER 7
23 #define XROAD_SOCK_OPT_SO_REUSE_PORT 8
24 #define XROAD_SOCK_OPT_UDS_PERMISSIONS 9
25 #define XROAD_SOCK_OPT_SHM_CPU_AFFINITY 10
26 #define XROAD_SOCK_OPT_SHM_USE_THREAD 11
27 #define XROAD_SOCK_OPT_SHM_TIMEOUT_US 12
28 #define XROAD_SOCK_OPT_SHM_USE_FAKE_FD 13
29 
33 typedef struct
34 {
35  void* ctx;
39  void (*on_connected)(xroad_sockid_t, void*);
43  void (*on_disconnected)(xroad_sockid_t, void*);
48  size_t (*on_data)(xroad_sockid_t, const xroad_net_buf_t*, void*);
52  void (*on_ready_to_send)(xroad_sockid_t, void*);
54 
62 
68 xroad_errno_t xroad_sock_destroy(xroad_sockid_t sockid);
69 
75 xroad_sock_type_t xroad_sock_get_type(xroad_sockid_t sockid);
76 
83 xroad_errno_t xroad_sock_set_callback(xroad_sockid_t sockid, xroad_sock_callback_t* cback);
84 
90 xroad_errno_t xroad_sock_connect(xroad_sockid_t sockid);
91 
97 xroad_errno_t xroad_sock_disconnect(xroad_sockid_t sockid);
98 
104 xroad_errno_t xroad_sock_bind(xroad_sockid_t sockid);
105 
111 xroad_errno_t xroad_sock_unbind(xroad_sockid_t sockid);
112 
119 ssize_t xroad_sock_send(xroad_sockid_t sockid, const xroad_net_buf_t* buf);
120 
128 xroad_errno_t xroad_sock_set_opt(xroad_sockid_t sockid, int32_t optid, void* opt);
129 
130 #ifdef __cplusplus
131 }
132 #endif
Definition: xroad_net_buf.h:23
Definition: xroad_sock.h:34
void * ctx
stored context. It passed to each callback method
Definition: xroad_sock.h:35
Definition: xroad_string.h:29
xroad_sock_type_t xroad_sock_get_type(xroad_sockid_t sockid)
xroad_errno_t xroad_sock_disconnect(xroad_sockid_t sockid)
xroad_errno_t xroad_sock_bind(xroad_sockid_t sockid)
xroad_errno_t xroad_sock_set_callback(xroad_sockid_t sockid, xroad_sock_callback_t *cback)
ssize_t xroad_sock_send(xroad_sockid_t sockid, const xroad_net_buf_t *buf)
xroad_errno_t xroad_sock_unbind(xroad_sockid_t sockid)
xroad_errno_t xroad_sock_connect(xroad_sockid_t sockid)
xroad_errno_t xroad_sock_destroy(xroad_sockid_t sockid)
xroad_sockid_t xroad_sock_create(xroad_str_t addr, xroad_sock_callback_t cback)
xroad_errno_t xroad_sock_set_opt(xroad_sockid_t sockid, int32_t optid, void *opt)
xroad_sock_type_t
Definition: xroad_sock_fwd.h:18