Data Structures | Typedefs | Functions
socket_stream_server.h File Reference

Connection based network server. More...

Data Structures

struct  vtm_socket_stream_srv_cbs
 
struct  vtm_socket_stream_srv_opts
 

Typedefs

typedef struct
vtm_socket_stream_srv 
vtm_socket_stream_srv
 

Functions

VTM_API vtm_socket_stream_srv * vtm_socket_stream_srv_new (void)
 
VTM_API void vtm_socket_stream_srv_free (vtm_socket_stream_srv *srv)
 
VTM_API void * vtm_socket_stream_srv_get_usr_data (vtm_socket_stream_srv *srv)
 
VTM_API void vtm_socket_stream_srv_set_usr_data (vtm_socket_stream_srv *srv, void *data)
 
VTM_API int vtm_socket_stream_srv_run (vtm_socket_stream_srv *srv, struct vtm_socket_stream_srv_opts *opts)
 
VTM_API int vtm_socket_stream_srv_stop (vtm_socket_stream_srv *srv)
 

Function Documentation

VTM_API vtm_socket_stream_srv* vtm_socket_stream_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_socket_stream_srv_free ( vtm_socket_stream_srv *  srv)

Releases the server and all allocated resources.

After this call the server pointer is no longer valid.

Parameters
srvthe server which should be released
VTM_API void* vtm_socket_stream_srv_get_usr_data ( vtm_socket_stream_srv *  srv)

Retrieves the stored user data.

Parameters
srvthe server
Returns
the previous saved user data
NULL if no data was stored
VTM_API void vtm_socket_stream_srv_set_usr_data ( vtm_socket_stream_srv *  srv,
void *  data 
)

Stores arbitrary user data with the server.

Parameters
srvthe server that should store the user data
datathe data that should be stored
VTM_API int vtm_socket_stream_srv_run ( vtm_socket_stream_srv *  srv,
struct vtm_socket_stream_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_socket_stream_srv_stop ( vtm_socket_stream_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