flux_msg_handler_addvec(3)
SYNOPSIS
#include <flux/core.h>
struct flux_msg_handler_spec {
int typemask;
const char *topic_glob;
flux_msg_handler_f cb;
uint32_t rolemask;
};
int flux_msg_handler_addvec (flux_t *h,
const struct flux_msg_handler_spec tab[],
void *arg,
flux_msg_handler_t **handlers[]);
void flux_msg_handler_delvec (flux_msg_handler_t *handlers[]);
Link with -lflux-core.
DESCRIPTION
flux_msg_handler_addvec() creates and starts an array of message handlers,
terminated by FLUX_MSGHANDLER_TABLE_END. The new message handler objects
are assigned to an internally allocated array, returned in handlers.
The last entry in the array is set to NULL.
flux_msg_handler_delvec() stops and destroys an array of message handlers
returned from flux_msg_handler_addvec().
These functions are convenience functions which call
flux_msg_handler_create(3), flux_msg_handler_start(3),
flux_msg_handler_allow_rolemask(3); and flux_msg_handler_stop(3),
flux_msg_handler_destroy(3) on each element of the array, respectively.
The defaults of typemask and topic_glob are described in
flux_msg_cmp(3). The default rolemask is described in
flux_msg_handler_allow_rolemask(3) and is set with a rolemask of 0.
If flux_msg_handler_addvec() encounters an error creating a message
handler, all previously created message handlers in the array are destroyed
before an error is returned.
RETURN VALUE
flux_msg_handler_addvec() returns zero on success.
On error, -1 is returned, and errno is set appropriately.
ERRORS
- ENOMEM
Out of memory.
RESOURCES
Flux: http://flux-framework.org
Flux RFC: https://flux-framework.readthedocs.io/projects/flux-rfc
Issue Tracker: https://github.com/flux-framework/flux-core/issues
SEE ALSO
flux_msg_handler_create(3), flux_msg_handler_allow_rolemask(3)