Data Structures | Macros | Typedefs | Functions
nm_stream_client.h File Reference

Connection based network message client. More...

Data Structures

struct  vtm_nm_stream_client_opts
 

Macros

#define VTM_NM_STREAM_CL_OPT_RECV_TIMEOUT   1
 

Typedefs

typedef struct vtm_nm_stream_client vtm_nm_stream_client
 

Functions

VTM_API vtm_nm_stream_client * vtm_nm_stream_client_new (void)
 
VTM_API void vtm_nm_stream_client_free (vtm_nm_stream_client *cl)
 
VTM_API int vtm_nm_stream_client_set_opt (vtm_nm_stream_client *cl, int opt, const void *val, size_t len)
 
VTM_API int vtm_nm_stream_client_connect (vtm_nm_stream_client *cl, struct vtm_nm_stream_client_opts *opts)
 
VTM_API int vtm_nm_stream_client_close (vtm_nm_stream_client *cl)
 
VTM_API int vtm_nm_stream_client_send (vtm_nm_stream_client *cl, vtm_dataset *msg)
 
VTM_API int vtm_nm_stream_client_recv (vtm_nm_stream_client *cl, vtm_dataset *msg)
 

Macro Definition Documentation

#define VTM_NM_STREAM_CL_OPT_RECV_TIMEOUT   1

expects unsigned long, value is millisceonds

Function Documentation

VTM_API vtm_nm_stream_client* vtm_nm_stream_client_new ( void  )

Creates a new client.

Returns
the created client which can be used in the other functions
NULL if an error occured
VTM_API void vtm_nm_stream_client_free ( vtm_nm_stream_client *  cl)

Releases the client and all allocated resources.

After this call the client pointer is no longer valid.

Parameters
clthe client that should be released
VTM_API int vtm_nm_stream_client_set_opt ( vtm_nm_stream_client *  cl,
int  opt,
const void *  val,
size_t  len 
)

Sets one of the possible options.

The possible options are macros starting with VTM_NM_STREAM_CL_OPT_.

Parameters
clthe client where the option should be set
optthe option that should be set
valpointer to new value of the option
lensize of the value
Returns
VTM_OK if the option was successfully set
VTM_E_NOT_SUPPORTED if the given option or the value format is not supported
VTM_ERROR if an error occured
VTM_API int vtm_nm_stream_client_connect ( vtm_nm_stream_client *  cl,
struct vtm_nm_stream_client_opts opts 
)

Connects to given message server.

Parameters
clthe client
optsconnection options
Returns
VTM_OK if the client connected to the server
VTM_E_IO_UNKNOWN or VTM_ERROR if an error occured
VTM_API int vtm_nm_stream_client_close ( vtm_nm_stream_client *  cl)

Closes the connection to the server.

Parameters
clthe client that should close the connection
Returns
VTM_OK if the connection was closed successfully
VTM_E_IO_UNKNOWN or VTM_ERROR if an error occured
VTM_API int vtm_nm_stream_client_send ( vtm_nm_stream_client *  cl,
vtm_dataset msg 
)

Sends a message to the server.

Parameters
clthe client
msgthe dataset containing the message values
Returns
VTM_OK if the message was successfully sent
VTM_E_INVALID_STATE if client is not connected to a server
VTM_E_IO_UNKNOWN or VTM_ERROR if an error occured
VTM_API int vtm_nm_stream_client_recv ( vtm_nm_stream_client *  cl,
vtm_dataset msg 
)

Tries to receive a message.

Parameters
clthe client
[out]msgthe dataset where the received message is stored
Returns
VTM_OK if a message was successfully received
VTM_E_INVALID_STATE if client is not connected to a server
VTM_E_TIMEOUT if the timeout elapsed and no message was received
VTM_E_IO_UNKNOWN or VTM_ERROR if an error occured