other versions
- wheezy 0.11.1-2
- jessie 0.11.1-2
- jessie-backports 1.0-1~bpo8+1
- testing 1.0.1-1
- unstable 1.0.1-1
qbipcs.h(3) | libqb | qbipcs.h(3) |
NAME¶
qbipcs.h - Server IPC API.SYNOPSIS¶
#include <stdlib.h>Data Structures¶
struct qb_ipcs_stats
Typedefs¶
typedef struct qb_ipcs_connection qb_ipcs_connection_t
Enumerations¶
enum qb_ipcs_rate_limit { QB_IPCS_RATE_FAST, QB_IPCS_RATE_NORMAL, QB_IPCS_RATE_SLOW, QB_IPCS_RATE_OFF, QB_IPCS_RATE_OFF_2 }
Functions¶
qb_ipcs_service_t * qb_ipcs_create (const char *name, int32_t service_id, enum qb_ipc_type type, struct qb_ipcs_service_handlers *handlers)
Detailed Description¶
Server IPC API.Typedef Documentation¶
typedef int32_t(* qb_ipcs_connection_accept_fn)(qb_ipcs_connection_t *c, uid_t uid, gid_t gid)¶
This callback is to check wether you want to accept a new connection. The type of checks you should do are authentication, service availabilty or process resource constraints. Returns:0 to accept or -errno to indicate a failure
(sent back to the client)
typedef int32_t(* qb_ipcs_connection_closed_fn)(qb_ipcs_connection_t *c)¶
This is called after a connection has been disconnected. Note:if you return anything but 0 this function
will be repeativily called (until 0 is returned).
typedef void(* qb_ipcs_connection_created_fn)(qb_ipcs_connection_t *c)¶
This is called after a new connection has been created.typedef void(* qb_ipcs_connection_destroyed_fn)(qb_ipcs_connection_t *c)¶
This is called just before a connection is freed.typedef struct qb_ipcs_connection qb_ipcs_connection_t¶
typedef int32_t(* qb_ipcs_dispatch_add_fn)(enum qb_loop_priority p, int32_t fd, int32_t events, void *data, qb_ipcs_dispatch_fn_t fn)¶
typedef int32_t(* qb_ipcs_dispatch_del_fn)(int32_t fd)¶
typedef int32_t(* qb_ipcs_dispatch_fn_t)(int32_t fd, int32_t revents, void *data)¶
typedef int32_t(* qb_ipcs_dispatch_mod_fn)(enum qb_loop_priority p, int32_t fd, int32_t events, void *data, qb_ipcs_dispatch_fn_t fn)¶
typedef int32_t(* qb_ipcs_job_add_fn)(enum qb_loop_priority p, void *data, qb_loop_job_dispatch_fn dispatch_fn)¶
typedef int32_t(* qb_ipcs_msg_process_fn)(qb_ipcs_connection_t *c, void *data, size_t size)¶
This is the message processing calback. It is called with the message data.typedef struct qb_ipcs_service qb_ipcs_service_t¶
Enumeration Type Documentation¶
enum qb_ipcs_rate_limit¶
Enumerator:- QB_IPCS_RATE_FAST
- QB_IPCS_RATE_NORMAL
- QB_IPCS_RATE_SLOW
- QB_IPCS_RATE_OFF
- QB_IPCS_RATE_OFF_2
-
Function Documentation¶
qb_ipcs_connection_t* qb_ipcs_connection_first_get ( qb_ipcs_service_t *pt)¶
Get the first connection. Note:call qb_ipcs_connection_ref_dec() after using
the connection.
Parameters:
pt service instance
Returns:
first connection
qb_ipcs_connection_t* qb_ipcs_connection_next_get (qb_ipcs_service_t *pt, qb_ipcs_connection_t *current)¶
Get the next connection. Note:call qb_ipcs_connection_ref_dec() after using
the connection.
Parameters:
pt service instance
current current connection
Returns:
next connection
void qb_ipcs_connection_ref (qb_ipcs_connection_t *c)¶
Increment the connection's reference counter. Parameters:c connection instance
int32_t qb_ipcs_connection_stats_get (qb_ipcs_connection_t *c, struct qb_ipcs_connection_stats *stats, int32_tclear_after_read)¶
Get the connection statistics. Parameters:stats (out) the statistics structure
clear_after_read clear stats after copying them into stats
c connection instance
Returns:
0 == ok; -errno to indicate a failure
void qb_ipcs_connection_unref (qb_ipcs_connection_t *c)¶
Decrement the connection's reference counter. Parameters:c connection instance
void* qb_ipcs_context_get (qb_ipcs_connection_t *c)¶
Get the context (set previously) Parameters:c connection instance
Returns:
the context
See also:
qb_ipcs_context_set()
void qb_ipcs_context_set (qb_ipcs_connection_t *c, void *context)¶
Associate a 'user' pointer with this connection. Parameters:context the point to associate with
this connection.
c connection instance
See also:
qb_ipcs_context_get()
qb_ipcs_service_t* qb_ipcs_create (const char *name, int32_tservice_id, enum qb_ipc_typetype, struct qb_ipcs_service_handlers *handlers)¶
Create a new IPC server. Parameters:name for clients to connect to.
service_id an integer to associate with the service
type transport type.
handlers callbacks.
Returns:
the new service instance.
void qb_ipcs_destroy (qb_ipcs_service_t *s)¶
Destroy the IPC server. Parameters:s service instance to destroy
void qb_ipcs_disconnect (qb_ipcs_connection_t *c)¶
Disconnect from this client. Parameters:c connection instance
ssize_t qb_ipcs_event_send (qb_ipcs_connection_t *c, const void *data, size_tsize)¶
Send an asyncronous event message to the client. Parameters:c connection instance
data the message to send
size the size of the message
Returns:
size sent or -errno for errors
ssize_t qb_ipcs_event_sendv (qb_ipcs_connection_t *c, const struct iovec *iov, size_tiov_len)¶
Send an asyncronous event message to the client. Parameters:c connection instance
iov the iovec struct that points to the message to send
iov_len the number of iovecs.
Returns:
size sent or -errno for errors
void qb_ipcs_poll_handlers_set (qb_ipcs_service_t *s, struct qb_ipcs_poll_handlers *handlers)¶
Set your poll callbacks. Parameters:s service instance
handlers the handlers that you want ipcs to use.
void qb_ipcs_ref (qb_ipcs_service_t *s)¶
Increase the reference counter on the service object. Parameters:s service instance
void qb_ipcs_request_rate_limit (qb_ipcs_service_t *s, enum qb_ipcs_rate_limitrl)¶
Limit the incomming request rate. Parameters:s service instance
rl the new rate
ssize_t qb_ipcs_response_send (qb_ipcs_connection_t *c, const void *data, size_tsize)¶
Send a response to a incomming request. Parameters:c connection instance
data the message to send
size the size of the message
Returns:
size sent or -errno for errors
ssize_t qb_ipcs_response_sendv (qb_ipcs_connection_t *c, const struct iovec *iov, size_tiov_len)¶
Send a response to a incomming request. Parameters:c connection instance
iov the iovec struct that points to the message to send
iov_len the number of iovecs.
Returns:
size sent or -errno for errors
int32_t qb_ipcs_run (qb_ipcs_service_t *s)¶
run the new IPC server. Parameters:s service instance
Returns:
0 == ok; -errno to indicate a failure
int32_t qb_ipcs_service_id_get (qb_ipcs_connection_t *c)¶
Get the service id related to this connection's service. (as passed into qb_ipcs_create() Returns:service id.
int32_t qb_ipcs_stats_get (qb_ipcs_service_t *pt, struct qb_ipcs_stats *stats, int32_tclear_after_read)¶
Get the service statistics. Parameters:stats (out) the statistics structure
clear_after_read clear stats after copying them into stats
pt service instance
Returns:
0 == ok; -errno to indicate a failure
void qb_ipcs_unref (qb_ipcs_service_t *s)¶
Decrease the reference counter on the service object. Parameters:s service instance
Author¶
Generated automatically by Doxygen for libqb from the source code.Tue Apr 3 2012 | Version 0.11.1 |