gmerlin
Typedefs | Functions
Lists of message queues

Send messages to multiple message queues. More...

Typedefs

typedef struct bg_msg_queue_list_s bg_msg_queue_list_t
 Opaque message queue list type. You don't want to know what's inside. More...
 

Functions

bg_msg_queue_list_tbg_msg_queue_list_create ()
 Create a message queue list. More...
 
void bg_msg_queue_list_destroy (bg_msg_queue_list_t *list)
 Destroy a message queue list. More...
 
void bg_msg_queue_list_send (bg_msg_queue_list_t *list, void(*set_message)(bg_msg_t *message, const void *data), const void *data)
 Send a message to all queues in the list. More...
 
void bg_msg_queue_list_add (bg_msg_queue_list_t *list, bg_msg_queue_t *queue)
 Add a queue to the list. More...
 
void bg_msg_queue_list_remove (bg_msg_queue_list_t *list, bg_msg_queue_t *queue)
 Remove a queue from the list. More...
 

Detailed Description

Send messages to multiple message queues.

Lists of message queues can be used, if some informations have to be passed to multiple recipients. Each listener adds a message queue to the list and will get all messages, which are broadcasted with bg_msg_queue_list_send from the writing end.

Typedef Documentation

typedef struct bg_msg_queue_list_s bg_msg_queue_list_t

Opaque message queue list type. You don't want to know what's inside.

Function Documentation

bg_msg_queue_list_t* bg_msg_queue_list_create ( )

Create a message queue list.

Returns
A newly allocated message queue list
void bg_msg_queue_list_destroy ( bg_msg_queue_list_t list)

Destroy a message queue list.

Parameters
listA message queue list
void bg_msg_queue_list_send ( bg_msg_queue_list_t list,
void(*)(bg_msg_t *message, const void *data)  set_message,
const void *  data 
)

Send a message to all queues in the list.

Parameters
listA message queue list
set_messageFunction to set ID and arguments of a message
dataData to pass to set_message
void bg_msg_queue_list_add ( bg_msg_queue_list_t list,
bg_msg_queue_t queue 
)

Add a queue to the list.

Parameters
listA message queue list
queueA message queue
void bg_msg_queue_list_remove ( bg_msg_queue_list_t list,
bg_msg_queue_t queue 
)

Remove a queue from the list.

Parameters
listA message queue list
queueA message queue