qbloop.h.3   qbloop.h.3 
qbloop.h(3) libqb qbloop .h(3) qbloop.h(3) libqb qbloop .h(3)
NAME NAME
qbloop.h - qbloop.h -
Main loop manages timers, jobs and polling sockets. Main loop manages timers, jobs and polling sockets'.
SYNOPSIS SYNOPSIS
#include <signal.h> #include <signal.h>
#include <stdint.h>
Typedefs Typedefs
typedef struct qb_loop qb_loop_t typedef struct qb_loop qb_loop_t
An opaque data type representing the main loop. An opaque data type representing the main loop'.
typedef uint64_t qb_loop_timer_handle typedef uint64_t qb_loop_timer_handle
typedef void * qb_loop_signal_handle typedef void * qb_loop_signal_handle
typedef int32_t(* qb_loop_poll_dispatch_fn )(int32_t fd, int32_t rev ents, void *data) typedef int32_t(* qb_loop_poll_dispatch_fn )(int32_t fd, int32_t rev ents, void *data)
typedef void(* qb_loop_job_dispatch_fn )(void *data) typedef void(* qb_loop_job_dispatch_fn )(void *data)
typedef void(* qb_loop_timer_dispatch_fn )(void *data) typedef void(* qb_loop_timer_dispatch_fn )(void *data)
typedef int32_t(* qb_loop_signal_dispatch_fn )(int32_t rsignal, void *data) typedef int32_t(* qb_loop_signal_dispatch_fn )(int32_t rsignal, void *data)
typedef void(* qb_loop_poll_low_fds_event_fn )(int32_t not_enough, i nt32_t fds_available) typedef void(* qb_loop_poll_low_fds_event_fn )(int32_t not_enough, i nt32_t fds_available)
Enumerations Enumerations
enum qb_loop_priority { QB_LOOP_LOW = 0, QB_LOOP_MED = 1, QB_LOOP_ HIGH = 2 } enum qb_loop_priority { QB_LOOP_LOW = 0, QB_LOOP_MED = 1, QB_LOOP_ HIGH = 2 }
Priorites for jobs, timers & poll. Priorites for jobs, timers & poll'.
Functions Functions
qb_loop_t * qb_loop_create (void) qb_loop_t * qb_loop_create (void)
Create a new main loop. Create a new main loop'.
void qb_loop_destroy (struct qb_loop *l) void qb_loop_destroy (struct qb_loop *l)
void qb_loop_stop (qb_loop_t *l) void qb_loop_stop (qb_loop_t *l)
Stop the main loop. Stop the main loop'.
void qb_loop_run (qb_loop_t *l) void qb_loop_run (qb_loop_t *l)
Run the main loop. Run the main loop'.
int32_t qb_loop_job_add (qb_loop_t *l, enum qb_loop_priority p, void *data, qb_loop_job_dispatch_fn dispatch_fn) int32_t qb_loop_job_add (qb_loop_t *l, enum qb_loop_priority p, void *data, qb_loop_job_dispatch_fn dispatch_fn)
Add a job to the mainloop. Add a job to the mainloop'.
int32_t qb_loop_timer_add (qb_loop_t *l, enum qb_loop_priority p, ui nt64_t nsec_duration, void *data, qb_loop_timer_dispatch_fn dispatch_fn, qb _loop_timer_handle *timer_handle_out) int32_t qb_loop_timer_add (qb_loop_t *l, enum qb_loop_priority p, ui nt64_t nsec_duration, void *data, qb_loop_timer_dispatch_fn dispatch_fn, qb _loop_timer_handle *timer_handle_out)
Add a timer to the mainloop. Add a timer to the mainloop'.
int32_t qb_loop_timer_del (qb_loop_t *l, qb_loop_timer_handle th) int32_t qb_loop_timer_del (qb_loop_t *l, qb_loop_timer_handle th)
Delete a timer that is still outstanding. Delete a timer that is still outstanding'.
uint64_t qb_loop_timer_expire_time_get (struct qb_loop *l, qb_loop_t imer_handle th) uint64_t qb_loop_timer_expire_time_get (struct qb_loop *l, qb_loop_t imer_handle th)
Get the time remaining before it expires. Get the time remaining before it expires'.
int32_t qb_loop_poll_low_fds_event_set (qb_loop_t *l, qb_loop_poll_l ow_fds_event_fn fn) int32_t qb_loop_poll_low_fds_event_set (qb_loop_t *l, qb_loop_poll_l ow_fds_event_fn fn)
Set a callback to receive events on file descriptors getting low . Set a callback to receive events on file descriptors getting low '.
int32_t qb_loop_poll_add (qb_loop_t *l, enum qb_loop_priority p, int 32_t fd, int32_t events, void *data, qb_loop_poll_dispatch_fn dispatch_fn) int32_t qb_loop_poll_add (qb_loop_t *l, enum qb_loop_priority p, int 32_t fd, int32_t events, void *data, qb_loop_poll_dispatch_fn dispatch_fn)
Add a poll job to the mainloop. Add a poll job to the mainloop'.
int32_t qb_loop_poll_mod (qb_loop_t *l, enum qb_loop_priority p, int 32_t fd, int32_t events, void *data, qb_loop_poll_dispatch_fn dispatch_fn) int32_t qb_loop_poll_mod (qb_loop_t *l, enum qb_loop_priority p, int 32_t fd, int32_t events, void *data, qb_loop_poll_dispatch_fn dispatch_fn)
Modify a poll job. Modify a poll job'.
int32_t qb_loop_poll_del (qb_loop_t *l, int32_t fd) int32_t qb_loop_poll_del (qb_loop_t *l, int32_t fd)
Delete a poll job. Delete a poll job'.
int32_t qb_loop_signal_add (qb_loop_t *l, enum qb_loop_priority p, i nt32_t signal, void *data, qb_loop_signal_dispatch_fn dispatch_fn, qb_loop_ signal_handle *handle) int32_t qb_loop_signal_add (qb_loop_t *l, enum qb_loop_priority p, i nt32_t signal, void *data, qb_loop_signal_dispatch_fn dispatch_fn, qb_loop_ signal_handle *handle)
Add a signal job. Add a signal job'.
int32_t qb_loop_signal_mod (qb_loop_t *l, enum qb_loop_priority p, i nt32_t signal, void *data, qb_loop_signal_dispatch_fn dispatch_fn, qb_loop_ signal_handle handle) int32_t qb_loop_signal_mod (qb_loop_t *l, enum qb_loop_priority p, i nt32_t signal, void *data, qb_loop_signal_dispatch_fn dispatch_fn, qb_loop_ signal_handle handle)
Modify the signal job. Modify the signal job'.
int32_t qb_loop_signal_del (qb_loop_t *l, qb_loop_signal_handle hand le) int32_t qb_loop_signal_del (qb_loop_t *l, qb_loop_signal_handle hand le)
Delete the signal job. Delete the signal job'.
Detailed Description Detailed Description
Main loop manages timers, jobs and polling sockets. Main loop manages timers, jobs and polling sockets'.
Typedef Documentation Typedef Documentation
typedef void(* qb_loop_job_dispatch_fn)(void *data) typedef void(* qb_loop_job_dispatch_fn)(void *data)
typedef int32_t(* qb_loop_poll_dispatch_fn)(int32_t fd, int32_t revents, void *data) typedef int32_t(* qb_loop_poll_dispatch_fn)(int32_t fd, int32_t revents, void *data)
typedef void(* qb_loop_poll_low_fds_event_fn)(int32_t not_enough, int32_ t fds_available) typedef void(* qb_loop_poll_low_fds_event_fn)(int32_t not_enough, int32_ t fds_available)
typedef int32_t(* qb_loop_signal_dispatch_fn)(int32_t rsignal, void *dat a) typedef int32_t(* qb_loop_signal_dispatch_fn)(int32_t rsignal, void *dat a)
typedef void* qb_loop_signal_handle typedef void* qb_loop_signal_handle
typedef struct qb_loop qb_loop_t typedef struct qb_loop qb_loop_t
An opaque data type representing the main loop. An opaque data type representing the main loop'.
typedef void(* qb_loop_timer_dispatch_fn)(void *data) typedef void(* qb_loop_timer_dispatch_fn)(void *data)
typedef uint64_t qb_loop_timer_handle typedef uint64_t qb_loop_timer_handle
Enumeration Type Documentation Enumeration Type Documentation
enum qb_loop_priority enum qb_loop_priority
Priorites for jobs, timers & poll. Priorites for jobs, timers & poll'.
Enumerator: Enumerator:
QB_LOOP_LOW QB_LOOP_LOW
QB_LOOP_MED QB_LOOP_MED
QB_LOOP_HIGH QB_LOOP_HIGH
Function Documentation Function Documentation
qb_loop_t* qb_loop_create (void) qb_loop_t* qb_loop_create (void)
Create a new main loop. Returns: Create a new main loop'. Returns:
loop instance. loop instance'.
void qb_loop_destroy (struct qb_loop * l) void qb_loop_destroy (struct qb_loop *l)
int32_t qb_loop_job_add (qb_loop_t * l, enum qb_loop_priority p, void * int32_t qb_loop_job_add (qb_loop_t *l, enum qb_loop_priorityp, void *dat
data, qb_loop_job_dispatch_fn dispatch_fn) a, qb_loop_job_dispatch_fndispatch_fn)
Add a job to the mainloop. This is run in the next cycle of the loop Add a job to the mainloop'. This is run in the next cycle of the loo
. p'.
Note: Note:
it is a one-shot job. it is a one-shot job'.
Parameters: Parameters:
l pointer to the loop instance l pointer to the loop instance
p the priority p the priority
data user data passed into the dispatch function data user data passed into the dispatch function
dispatch_fn callback function dispatch_fn callback function
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
int32_t qb_loop_poll_add (qb_loop_t * l, enum qb_loop_priority p, int32_ int32_t qb_loop_poll_add (qb_loop_t *l, enum qb_loop_priorityp, int32_tf
t fd, int32_t events, void * data, qb_loop_poll_dispatch_fn dispatch_fn) d, int32_tevents, void *data, qb_loop_poll_dispatch_fndispatch_fn)
Add a poll job to the mainloop. Note: Add a poll job to the mainloop'. Note:
it is a re-occuring job. it is a re-occuring job'.
Parameters: Parameters:
l pointer to the loop instance l pointer to the loop instance
p the priority p the priority
fd file descriptor. fd file descriptor'.
events (POLLIN|POLLOUT) etc .... events (POLLIN|POLLOUT) etc '.'.'.'.
data user data passed into the dispatch function data user data passed into the dispatch function
dispatch_fn callback function dispatch_fn callback function
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
int32_t qb_loop_poll_del (qb_loop_t * l, int32_t fd) int32_t qb_loop_poll_del (qb_loop_t *l, int32_tfd)
Delete a poll job. Parameters: Delete a poll job'. Parameters:
l pointer to the loop instance l pointer to the loop instance
fd file descriptor. fd file descriptor'.
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
int32_t qb_loop_poll_low_fds_event_set (qb_loop_t * l, qb_loop_poll_low_ int32_t qb_loop_poll_low_fds_event_set (qb_loop_t *l, qb_loop_poll_low_f
fds_event_fn fn) ds_event_fnfn)
Set a callback to receive events on file descriptors getting low. Pa Set a callback to receive events on file descriptors getting low'. P
rameters: arameters:
l pointer to the loop instance l pointer to the loop instance
fn callback function. fn callback function'.
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
int32_t qb_loop_poll_mod (qb_loop_t * l, enum qb_loop_priority p, int32_ int32_t qb_loop_poll_mod (qb_loop_t *l, enum qb_loop_priorityp, int32_tf
t fd, int32_t events, void * data, qb_loop_poll_dispatch_fn dispatch_fn) d, int32_tevents, void *data, qb_loop_poll_dispatch_fndispatch_fn)
Modify a poll job. Parameters: Modify a poll job'. Parameters:
l pointer to the loop instance l pointer to the loop instance
p the priority p the priority
fd file descriptor. fd file descriptor'.
events (POLLIN|POLLOUT) etc .... events (POLLIN|POLLOUT) etc '.'.'.'.
data user data passed into the dispatch function data user data passed into the dispatch function
dispatch_fn callback function dispatch_fn callback function
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
void qb_loop_run (qb_loop_t * l) void qb_loop_run (qb_loop_t *l)
Run the main loop. Parameters: Run the main loop'. Parameters:
l pointer to the loop instance l pointer to the loop instance
int32_t qb_loop_signal_add (qb_loop_t * l, enum qb_loop_priority p, int3 int32_t qb_loop_signal_add (qb_loop_t *l, enum qb_loop_priorityp, int32_
2_t signal, void * data, qb_loop_signal_dispatch_fn dispatch_fn, qb_loop_si tsignal, void *data, qb_loop_signal_dispatch_fndispatch_fn, qb_loop_signal_
gnal_handle * handle) handle *handle)
Add a signal job. Get a callback on this signal (not in the context Add a signal job'. Get a callback on this signal (not in the context
of the signal). of the signal)'.
Parameters: Parameters:
l pointer to the loop instance l pointer to the loop instance
p the priority p the priority
signal (SIGHUP or SIGINT) etc .... signal (SIGHUP or SIGINT) etc '.'.'.'.
data user data passed into the dispatch function data user data passed into the dispatch function
dispatch_fn callback function dispatch_fn callback function
handle (out) a reference to the signal job handle (out) a reference to the signal job
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
int32_t qb_loop_signal_del (qb_loop_t * l, qb_loop_signal_handle handle) int32_t qb_loop_signal_del (qb_loop_t *l, qb_loop_signal_handlehandle)
Delete the signal job. Parameters: Delete the signal job'. Parameters:
l pointer to the loop instance l pointer to the loop instance
handle (in) a reference to the signal job handle (in) a reference to the signal job
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
int32_t qb_loop_signal_mod (qb_loop_t * l, enum qb_loop_priority p, int3 int32_t qb_loop_signal_mod (qb_loop_t *l, enum qb_loop_priorityp, int32_
2_t signal, void * data, qb_loop_signal_dispatch_fn dispatch_fn, qb_loop_si tsignal, void *data, qb_loop_signal_dispatch_fndispatch_fn, qb_loop_signal_
gnal_handle handle) handlehandle)
Modify the signal job. Parameters: Modify the signal job'. Parameters:
l pointer to the loop instance l pointer to the loop instance
p the priority p the priority
signal (SIGHUP or SIGINT) etc .... signal (SIGHUP or SIGINT) etc '.'.'.'.
data user data passed into the dispatch function data user data passed into the dispatch function
dispatch_fn callback function dispatch_fn callback function
handle (in) a reference to the signal job handle (in) a reference to the signal job
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
void qb_loop_stop (qb_loop_t * l) void qb_loop_stop (qb_loop_t *l)
Stop the main loop. Parameters: Stop the main loop'. Parameters:
l pointer to the loop instance l pointer to the loop instance
int32_t qb_loop_timer_add (qb_loop_t * l, enum qb_loop_priority p, uint6 int32_t qb_loop_timer_add (qb_loop_t *l, enum qb_loop_priorityp, uint64_
4_t nsec_duration, void * data, qb_loop_timer_dispatch_fn dispatch_fn, qb_l tnsec_duration, void *data, qb_loop_timer_dispatch_fndispatch_fn, qb_loop_t
oop_timer_handle * timer_handle_out) imer_handle *timer_handle_out)
Add a timer to the mainloop. Note: Add a timer to the mainloop'. Note:
it is a one-shot job. it is a one-shot job'.
Parameters: Parameters:
l pointer to the loop instance l pointer to the loop instance
p the priority p the priority
nsec_duration nano-secs in the future to run the dispatch. nsec_duration nano-secs in the future to run the dispatch'.
data user data passed into the dispatch function data user data passed into the dispatch function
dispatch_fn callback function dispatch_fn callback function
timer_handle_out handle to delete the timer if needed. timer_handle_out handle to delete the timer if needed'.
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
int32_t qb_loop_timer_del (qb_loop_t * l, qb_loop_timer_handle th) int32_t qb_loop_timer_del (qb_loop_t *l, qb_loop_timer_handleth)
Delete a timer that is still outstanding. Parameters: Delete a timer that is still outstanding'. Parameters:
l pointer to the loop instance l pointer to the loop instance
th handle to delete the timer if needed. th handle to delete the timer if needed'.
Returns: Returns:
status (0 == ok, -errno == failure) status (0 == ok, -errno == failure)
uint64_t qb_loop_timer_expire_time_get (struct qb_loop * l, qb_loop_time uint64_t qb_loop_timer_expire_time_get (struct qb_loop *l, qb_loop_timer
r_handle th) _handleth)
Get the time remaining before it expires. Parameters: Get the time remaining before it expires'. Note:
if the timer has already expired it will return 0
Parameters:
l pointer to the loop instance l pointer to the loop instance
th timer handle. th timer handle'.
Returns: Returns:
nano seconds left nano seconds left
Author Author
Generated automatically by Doxygen for libqb from the source code. Generated automatically by Doxygen for libqb from the source code'.
Version 0.4.1 Mon Jan 31 2011 qbloop .h(3) Version 0.8.1 Thu Jan 5 2012 qbloop .h(3)
 End of changes. 48 change blocks. 
79 lines changed or deleted 83 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/