server.h File Reference

#include "lscp/socket.h"
#include "lscp/event.h"

Go to the source code of this file.

Data Structures

struct  lscp_connect_t
struct  lscp_connect_list_t
struct  lscp_server_t

Typedefs

typedef enum
_lscp_server_mode_t 
lscp_server_mode_t
typedef enum
_lscp_connect_mode_t 
lscp_connect_mode_t
typedef lscp_status_t(* lscp_server_proc_t )(lscp_connect_t *pConnect, const char *pchBuffer, int cchBuffer, void *pvData)

Enumerations

enum  _lscp_server_mode_t { LSCP_SERVER_THREAD = 0, LSCP_SERVER_SELECT = 1 }
enum  _lscp_connect_mode_t { LSCP_CONNECT_OPEN = 0, LSCP_CONNECT_CLOSE = 1 }

Functions

const char * lscp_server_package (void)
const char * lscp_server_version (void)
const char * lscp_server_build (void)
lscp_server_tlscp_server_create (int iPort, lscp_server_proc_t pfnCallback, void *pvData)
lscp_server_tlscp_server_create_ex (int iPort, lscp_server_proc_t pfnCallback, void *pvData, lscp_server_mode_t mode)
lscp_status_t lscp_server_join (lscp_server_t *pServer)
lscp_status_t lscp_server_destroy (lscp_server_t *pServer)
lscp_status_t lscp_server_broadcast (lscp_server_t *pServer, lscp_event_t event, const char *pchData, int cchData)
lscp_status_t lscp_server_result (lscp_connect_t *pConnect, const char *pchBuffer, int cchBuffer)
lscp_status_t lscp_server_subscribe (lscp_connect_t *pConnect, lscp_event_t event)
lscp_status_t lscp_server_unsubscribe (lscp_connect_t *pConnect, lscp_event_t event)


Typedef Documentation

typedef enum _lscp_connect_mode_t lscp_connect_mode_t

Connection mode notification.

typedef enum _lscp_server_mode_t lscp_server_mode_t

Server thread model.

typedef lscp_status_t(* lscp_server_proc_t)(lscp_connect_t *pConnect, const char *pchBuffer, int cchBuffer, void *pvData)

Server callback procedure prototype.


Enumeration Type Documentation

enum _lscp_connect_mode_t

Connection mode notification.

Enumerator:
LSCP_CONNECT_OPEN 
LSCP_CONNECT_CLOSE 

enum _lscp_server_mode_t

Server thread model.

Enumerator:
LSCP_SERVER_THREAD 
LSCP_SERVER_SELECT 


Function Documentation

lscp_status_t lscp_server_broadcast ( lscp_server_t pServer,
lscp_event_t  event,
const char *  pchData,
int  cchData 
)

Send an event notification message to all subscribed clients.

Parameters:
pServer Pointer to server instance structure.
event Event type flag to send to all subscribed clients.
pchData Pointer to event data to be sent to all clients.
cchData Length of the event data to be sent in bytes.
Returns:
LSCP_OK on success, LSCP_FAILED otherwise.

const char* lscp_server_build ( void   ) 

Retrieve the current server library build timestamp string.

lscp_server_t* lscp_server_create ( int  iPort,
lscp_server_proc_t  pfnCallback,
void *  pvData 
)

Create a server instance, listening on the given port for client connections. A server callback function must be suplied that will handle every and each client request.

Parameters:
iPort Port number where the server will bind for listening.
pfnCallback Callback function to receive and handle client requests.
pvData Server context opaque data, that will be passed to the callback function without change.
Returns:
The new server instance pointer lscp_server_t if successfull, which shall be used on all subsequent server calls, NULL otherwise.

lscp_server_t* lscp_server_create_ex ( int  iPort,
lscp_server_proc_t  pfnCallback,
void *  pvData,
lscp_server_mode_t  mode 
)

Create a server instance, listening on the given port for client connections. A server callback function must be suplied that will handle every and each client request. A server threading model maybe specified either as multi-threaded (one thread per client) or single thread multiplex mode (one thread serves all clients).

Parameters:
iPort Port number where the server will bind for listening.
pfnCallback Callback function to receive and handle client requests.
pvData Server context opaque data, that will be passed to the callback function without change.
mode Server mode of operation, regarding the internal threading model, either LSCP_SERVER_THREAD for a multi-threaded server, or LSCP_SERVER_SELECT for a single-threaded multiplexed server.
Returns:
The new server instance pointer if successfull, which shall be used on all subsequent server calls, NULL otherwise.

lscp_status_t lscp_server_destroy ( lscp_server_t pServer  ) 

Terminate and destroy a server instance.

Parameters:
pServer Pointer to server instance structure.

lscp_status_t lscp_server_join ( lscp_server_t pServer  ) 

Wait for a server instance to terminate graciously.

Parameters:
pServer Pointer to server instance structure.

const char* lscp_server_package ( void   ) 

Retrieve the current server library version string.

lscp_status_t lscp_server_result ( lscp_connect_t pConnect,
const char *  pchBuffer,
int  cchBuffer 
)

Send response for the current client callback request.

Parameters:
pConnect Pointer to client connection instance structure.
pchBuffer Pointer to data to be sent to the client as response.
cchBuffer Length of the response data to be sent in bytes.
Returns:
LSCP_OK on success, LSCP_FAILED otherwise.

lscp_status_t lscp_server_subscribe ( lscp_connect_t pConnect,
lscp_event_t  event 
)

Register client as a subscriber of event broadcast messages.

Parameters:
pConnect Pointer to client connection instance structure.
event Event type flag of the requesting client subscription.
Returns:
LSCP_OK on success, LSCP_FAILED otherwise.

lscp_status_t lscp_server_unsubscribe ( lscp_connect_t pConnect,
lscp_event_t  event 
)

Deregister client as subscriber of event broadcast messages.

Parameters:
pConnect Pointer to client connection instance structure.
event Event type flag of the requesting client unsubscription.
Returns:
LSCP_OK on success, LSCP_FAILED otherwise.

const char* lscp_server_version ( void   ) 

Retrieve the current server library version string.


Generated on Wed Oct 17 15:24:13 2007 for liblscp by  doxygen 1.5.3