Data Structures | Typedefs | Functions
nm_dgram_server.h File Reference

Datagram based network message server. More...

Data Structures

struct  vtm_nm_dgram_srv_cbs
 
struct  vtm_nm_dgram_srv_opts
 

Typedefs

typedef struct vtm_nm_dgram_srv vtm_nm_dgram_srv
 

Functions

VTM_API vtm_nm_dgram_srv * vtm_nm_dgram_srv_new (void)
 
VTM_API void vtm_nm_dgram_srv_free (vtm_nm_dgram_srv *srv)
 
VTM_API int vtm_nm_dgram_srv_run (vtm_nm_dgram_srv *srv, struct vtm_nm_dgram_srv_opts *opts)
 
VTM_API int vtm_nm_dgram_srv_stop (vtm_nm_dgram_srv *srv)
 
VTM_API int vtm_nm_dgram_srv_send (vtm_nm_dgram_srv *srv, vtm_dataset *msg, const struct vtm_socket_saddr *saddr)
 

Function Documentation

VTM_API vtm_nm_dgram_srv* vtm_nm_dgram_srv_new ( void  )

Creates a new server.

Returns
the created server which can be used in the other functions
NULL if an error occured
VTM_API void vtm_nm_dgram_srv_free ( vtm_nm_dgram_srv *  srv)

Frees the server and all allocated resources.

Parameters
srvthe server which should be freed
VTM_API int vtm_nm_dgram_srv_run ( vtm_nm_dgram_srv *  srv,
struct vtm_nm_dgram_srv_opts opts 
)

Runs the server.

This method blocks until the server is stopped or if an error occurs.

Parameters
srvthe previously created server
optsthe options for running the server
Returns
VTM_OK if the server has been started successfully and has already been shut down again
VTM_ERROR or other more specific error code when the server could not be started
VTM_API int vtm_nm_dgram_srv_stop ( vtm_nm_dgram_srv *  srv)

Stops the server.

This method blocks until the server is gracefully shutdown.

Parameters
srvthe server which should be stopped
Returns
VTM_OK if the shutdown was successful
VTM_ERROR if an error occured
VTM_API int vtm_nm_dgram_srv_send ( vtm_nm_dgram_srv *  srv,
vtm_dataset msg,
const struct vtm_socket_saddr saddr 
)

Sends a message to the given address.

Parameters
srvthe server which sends the message
msgthe message to send
saddrthe destination address
Returns
VTM_OK if the datagram was sent successfully
VTM_E_IO_UNKNOWN or VTM_ERROR if an error occured