XROAD
xroad_sock.h File Reference
#include "xroad_sock_fwd.h"
#include <common/xroad_string.h>
#include <stdlib.h>
Include dependency graph for xroad_sock.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  xroad_sock_callback_t
 

Macros

#define XROAD_SOCK_OPT_SO_NODELAY   1
 
#define XROAD_SOCK_OPT_SO_REUSE_ADDR   2
 
#define XROAD_SOCK_OPT_SO_KEEP_ALIVE   3
 
#define XROAD_SOCK_OPT_BUF_SIZE   4
 
#define XROAD_SOCK_OPT_BUF_MAX_SIZE   5
 
#define XROAD_SOCK_OPT_MAX_CLNT_CONN   6
 
#define XROAD_SOCK_OPT_SO_LINGER   7
 
#define XROAD_SOCK_OPT_SO_REUSE_PORT   8
 
#define XROAD_SOCK_OPT_UDS_PERMISSIONS   9
 
#define XROAD_SOCK_OPT_SHM_CPU_AFFINITY   10
 
#define XROAD_SOCK_OPT_SHM_USE_THREAD   11
 
#define XROAD_SOCK_OPT_SHM_TIMEOUT_US   12
 
#define XROAD_SOCK_OPT_SHM_USE_FAKE_FD   13
 

Functions

xroad_sockid_t xroad_sock_create (xroad_str_t addr, xroad_sock_callback_t cback)
 
xroad_errno_t xroad_sock_destroy (xroad_sockid_t sockid)
 
xroad_sock_type_t xroad_sock_get_type (xroad_sockid_t sockid)
 
xroad_errno_t xroad_sock_set_callback (xroad_sockid_t sockid, xroad_sock_callback_t *cback)
 
xroad_errno_t xroad_sock_connect (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_unbind (xroad_sockid_t sockid)
 
ssize_t xroad_sock_send (xroad_sockid_t sockid, const xroad_net_buf_t *buf)
 
xroad_errno_t xroad_sock_set_opt (xroad_sockid_t sockid, int32_t optid, void *opt)
 

Detailed Description

Function Documentation

◆ xroad_sock_bind()

xroad_errno_t xroad_sock_bind ( xroad_sockid_t  sockid)

bind socket

Parameters
[in]sockid- socket id
Returns
XROAD_OK - socket has been bound, < 0 - failed

◆ xroad_sock_connect()

xroad_errno_t xroad_sock_connect ( xroad_sockid_t  sockid)

connect socket

Parameters
[in]sockid- socket id
Returns
XROAD_OK - connected, < 0 - failed

◆ xroad_sock_create()

xroad_sockid_t xroad_sock_create ( xroad_str_t  addr,
xroad_sock_callback_t  cback 
)

create new socket

Parameters
[in]addr- address of socket (see xroad_addr.h for details)
[in]cback- socket callback
Returns
id of created socket (> 0). < 0 - error happened

◆ xroad_sock_destroy()

xroad_errno_t xroad_sock_destroy ( xroad_sockid_t  sockid)

destroy socket and free its resources

Parameters
[in]sockid- id of socket to destroy
Returns
XROAD_OK - destroyed, < 0 - error happened

◆ xroad_sock_disconnect()

xroad_errno_t xroad_sock_disconnect ( xroad_sockid_t  sockid)

disconnect socket

Parameters
[in]sockid- socket id
Returns
XROAD_OK - disconnected, < 0 - failed

◆ xroad_sock_get_type()

xroad_sock_type_t xroad_sock_get_type ( xroad_sockid_t  sockid)

return type of socket

Parameters
[in]sockid- socket id
Returns
see xroad_sock_type_t enum for possible values. if return value < 0, socket is unknown

◆ xroad_sock_send()

ssize_t xroad_sock_send ( xroad_sockid_t  sockid,
const xroad_net_buf_t buf 
)

send data to socket

Parameters
[in]sockid- socket id
[in]buf- data to send
Returns
number of sent bytes, < 0 - send failed (see xroad_errno_t for details)

◆ xroad_sock_set_callback()

xroad_errno_t xroad_sock_set_callback ( xroad_sockid_t  sockid,
xroad_sock_callback_t cback 
)

replace socket callback with new one

Parameters
[in]sockid- socket id
[in]cback- new socket callback
Returns
XROAD_OK - callback replaced, < 0 - error happened

◆ xroad_sock_set_opt()

xroad_errno_t xroad_sock_set_opt ( xroad_sockid_t  sockid,
int32_t  optid,
void *  opt 
)

set socket option

Parameters
[in]sockid- socket id
[in]optid- option id (see XROAD_SOCK_OPT_*)
[in]opt- option value
Returns
XROAD_OK - option has been set, <0 - failed

◆ xroad_sock_unbind()

xroad_errno_t xroad_sock_unbind ( xroad_sockid_t  sockid)

unbind socket

Parameters
[in]sockid- socket id
Returns
XROAD_OK - socket has been bound, < 0 - failed