Genivia Home Documentation
mq.c File Reference

updated Thu Mar 21 2024 by Robert van Engelen
 
Functions | Variables
mq.c File Reference
#include "mq.h"
Include dependency graph for mq.c:

Functions

static int soap_mq_init (struct soap *soap, struct soap_mq_data *data)
 
static void soap_mq_delete (struct soap *soap, struct soap_plugin *p)
 
static size_t soap_mq_recv (struct soap *soap, char *buf, size_t len)
 
static int soap_mq_serveloop (struct soap *soap)
 
static void soap_mq_set (struct soap_mq_msg *msg)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_mq (struct soap *soap, struct soap_plugin *p, void *arg)
 
SOAP_FMAC1 struct soap_mq_queue *SOAP_FMAC2 soap_mq_queue (struct soap *soap)
 Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap). Use soap_mq_get() to receive a message from the current socket to add to the queue. More...
 
SOAP_FMAC1 struct soap_mq_msg *SOAP_FMAC2 soap_mq_get (struct soap *soap, struct soap_mq_queue *mq)
 Receive message from socket and queue it at the end of the queue. More...
 
SOAP_FMAC1 struct soap_mq_msg *SOAP_FMAC2 soap_mq_begin (struct soap_mq_queue *mq)
 Get first message in queue. Use msg->soap to invoke service from the queued message, as in soap_serve(&msg->soap). More...
 
SOAP_FMAC1 struct soap_mq_msg *SOAP_FMAC2 soap_mq_next (struct soap_mq_msg *msg)
 Get next message in queue. Use msg->soap to invoke service from the queued message, as in soap_serve(&msg->soap). More...
 
SOAP_FMAC1 void SOAP_FMAC2 soap_mq_del (struct soap_mq_queue *mq, struct soap_mq_msg *msg)
 Delete message from queue, e.g. after processing it. Delete entire queue when msg==NULL. Note: structures will be deallocated with deallocation with soap_end(). More...
 

Variables

const char soap_mq_id [] = SOAP_MQ_ID
 

Function Documentation

SOAP_FMAC1 int SOAP_FMAC2 soap_mq ( struct soap *  soap,
struct soap_plugin *  p,
void *  arg 
)

plugin registry function, invoked by soap_register_plugin

SOAP_FMAC1 struct soap_mq_msg* SOAP_FMAC2 soap_mq_begin ( struct soap_mq_queue mq)

Get first message in queue. Use msg->soap to invoke service from the queued message, as in soap_serve(&msg->soap).

Parameters
mqpointer to the message queue structure created by soap_mq_queue()
Returns
pointer to first message in the queue, or NULL
SOAP_FMAC1 void SOAP_FMAC2 soap_mq_del ( struct soap_mq_queue mq,
struct soap_mq_msg msg 
)

Delete message from queue, e.g. after processing it. Delete entire queue when msg==NULL. Note: structures will be deallocated with deallocation with soap_end().

Parameters
mqpointer to the queue structure
msgpointer to a message in the queue, when NULL delete entire queue
static void soap_mq_delete ( struct soap *  soap,
struct soap_plugin *  p 
)
static
SOAP_FMAC1 struct soap_mq_msg* SOAP_FMAC2 soap_mq_get ( struct soap *  soap,
struct soap_mq_queue mq 
)

Receive message from socket and queue it at the end of the queue.

Parameters
soapcurrent context
mqpointer to the message queue structure created by soap_mq_queue()
Returns
pointer to the message received and queued, or NULL
static int soap_mq_init ( struct soap *  soap,
struct soap_mq_data data 
)
static
SOAP_FMAC1 struct soap_mq_msg* SOAP_FMAC2 soap_mq_next ( struct soap_mq_msg msg)

Get next message in queue. Use msg->soap to invoke service from the queued message, as in soap_serve(&msg->soap).

Parameters
msgpointer to current message in the queue
Returns
pointer to next message in the queue, or NULL
SOAP_FMAC1 struct soap_mq_queue* SOAP_FMAC2 soap_mq_queue ( struct soap *  soap)

Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap). Use soap_mq_get() to receive a message from the current socket to add to the queue.

Parameters
soapcurrent context
Returns
pointer to the queue structure
static size_t soap_mq_recv ( struct soap *  soap,
char *  buf,
size_t  len 
)
static
static int soap_mq_serveloop ( struct soap *  soap)
static
static void soap_mq_set ( struct soap_mq_msg msg)
static

Variable Documentation

const char soap_mq_id[] = SOAP_MQ_ID