<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <meta http-equiv="cache-control" content="no-cache"> <title>Genivia - mq.c File Reference</title> <link href="genivia_tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="genivia_content.css" rel="stylesheet" type="text/css"> </head> <body> <div id="top"> <div id="titlearea"> <table height="72px" width="100%" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="10%"> </td> <td width="175px"><a href="https://www.genivia.com"><img alt="Genivia" src="GeniviaLogo2_trans_noslogan.png"/></a></td> <td class="tab_home"><a href="https://www.genivia.com">Home</a></td> <td class="tab_home"><a href="https://www.genivia.com/docs.html">Documentation</a></td> <td> <div style="float: right; font-size: 18px; font-weight: bold;">mq.c File Reference</div> <br> <div style="float: right; font-size: 10px;">updated Mon Dec 19 2016</div> </td> <td width="10%"> </td> </tr> </tbody> </table> </div> <!-- Generated by Doxygen 1.8.11 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_b4c3aec6cd8f28418150dce663061cfa.html">plugin</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">mq.c File Reference</div> </div> </div><!--header--> <div class="contents"> <div class="textblock"><code>#include "<a class="el" href="mq_8h.html">mq.h</a>"</code><br /> </div><div class="textblock"><div class="dynheader"> Include dependency graph for mq.c:</div> <div class="dyncontent"> <div class="center"><img src="mq_8c__incl.png" border="0" usemap="#mq_8c" alt=""/></div> <map name="mq_8c" id="mq_8c"> <area shape="rect" id="node3" href="mq_8h.html" title="mq.h" alt="" coords="23,83,73,111"/> </map> </div> </div><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:a7b291a7d904866af6fbd782a37b0eb12"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#a7b291a7d904866af6fbd782a37b0eb12">soap_mq_init</a> (struct soap *soap, struct <a class="el" href="structsoap__mq__data.html">soap_mq_data</a> *data)</td></tr> <tr class="separator:a7b291a7d904866af6fbd782a37b0eb12"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a16eb014dda676efb5b29cea39f16a00b"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#a16eb014dda676efb5b29cea39f16a00b">soap_mq_delete</a> (struct soap *soap, struct soap_plugin *p)</td></tr> <tr class="separator:a16eb014dda676efb5b29cea39f16a00b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acfd5dd8f99d720ab37b27eb180a7a7df"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#acfd5dd8f99d720ab37b27eb180a7a7df">soap_mq_recv</a> (struct soap *soap, char *buf, size_t len)</td></tr> <tr class="separator:acfd5dd8f99d720ab37b27eb180a7a7df"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab818b02228466e8ddeeb8fc2c9d35403"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#ab818b02228466e8ddeeb8fc2c9d35403">soap_mq_serveloop</a> (struct soap *soap)</td></tr> <tr class="separator:ab818b02228466e8ddeeb8fc2c9d35403"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a448068c3eeee201d750f9c817a176e17"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#a448068c3eeee201d750f9c817a176e17">soap_mq_set</a> (struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *msg)</td></tr> <tr class="separator:a448068c3eeee201d750f9c817a176e17"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a32f2ad1c3c651392cb497fa0534f7793"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#a32f2ad1c3c651392cb497fa0534f7793">soap_mq</a> (struct soap *soap, struct soap_plugin *p, void *arg)</td></tr> <tr class="separator:a32f2ad1c3c651392cb497fa0534f7793"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab4229c48976d050769c40495fb9281d2"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#ab4229c48976d050769c40495fb9281d2">soap_mq_queue</a> (struct soap *soap)</td></tr> <tr class="memdesc:ab4229c48976d050769c40495fb9281d2"><td class="mdescLeft"> </td><td class="mdescRight">Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap). Use <a class="el" href="mq_8c.html#a611b2a210304d6f60c628e443ff90b92" title="Receive message from socket and queue it at the end of the queue. ">soap_mq_get()</a> to receive a message from the current socket to add to the queue. <a href="#ab4229c48976d050769c40495fb9281d2">More...</a><br /></td></tr> <tr class="separator:ab4229c48976d050769c40495fb9281d2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a611b2a210304d6f60c628e443ff90b92"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#a611b2a210304d6f60c628e443ff90b92">soap_mq_get</a> (struct soap *soap, struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *mq)</td></tr> <tr class="memdesc:a611b2a210304d6f60c628e443ff90b92"><td class="mdescLeft"> </td><td class="mdescRight">Receive message from socket and queue it at the end of the queue. <a href="#a611b2a210304d6f60c628e443ff90b92">More...</a><br /></td></tr> <tr class="separator:a611b2a210304d6f60c628e443ff90b92"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae62edbe024c53494a7e67bdc07d548d3"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#ae62edbe024c53494a7e67bdc07d548d3">soap_mq_begin</a> (struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *mq)</td></tr> <tr class="memdesc:ae62edbe024c53494a7e67bdc07d548d3"><td class="mdescLeft"> </td><td class="mdescRight">Get first message in queue. Use msg->soap to invoke service from the queued message, as in soap_serve(&msg->soap). <a href="#ae62edbe024c53494a7e67bdc07d548d3">More...</a><br /></td></tr> <tr class="separator:ae62edbe024c53494a7e67bdc07d548d3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2b6ef0b60fe79adb8e08fcad48407fb7"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#a2b6ef0b60fe79adb8e08fcad48407fb7">soap_mq_next</a> (struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *msg)</td></tr> <tr class="memdesc:a2b6ef0b60fe79adb8e08fcad48407fb7"><td class="mdescLeft"> </td><td class="mdescRight">Get next message in queue. Use msg->soap to invoke service from the queued message, as in soap_serve(&msg->soap). <a href="#a2b6ef0b60fe79adb8e08fcad48407fb7">More...</a><br /></td></tr> <tr class="separator:a2b6ef0b60fe79adb8e08fcad48407fb7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a73311b8398b32bcf10071add7ef91fb9"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 void SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#a73311b8398b32bcf10071add7ef91fb9">soap_mq_del</a> (struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> *mq, struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> *msg)</td></tr> <tr class="memdesc:a73311b8398b32bcf10071add7ef91fb9"><td class="mdescLeft"> </td><td class="mdescRight">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(). <a href="#a73311b8398b32bcf10071add7ef91fb9">More...</a><br /></td></tr> <tr class="separator:a73311b8398b32bcf10071add7ef91fb9"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> Variables</h2></td></tr> <tr class="memitem:a20d6f17af7aee5cf23b9ffc2a6011a61"><td class="memItemLeft" align="right" valign="top">const char </td><td class="memItemRight" valign="bottom"><a class="el" href="mq_8c.html#a20d6f17af7aee5cf23b9ffc2a6011a61">soap_mq_id</a> [] = <a class="el" href="mq_8h.html#a17566560281374870f12ef5481eb931a">SOAP_MQ_ID</a></td></tr> <tr class="separator:a20d6f17af7aee5cf23b9ffc2a6011a61"><td class="memSeparator" colspan="2"> </td></tr> </table> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="a32f2ad1c3c651392cb497fa0534f7793"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 soap_mq </td> <td>(</td> <td class="paramtype">struct soap * </td> <td class="paramname"><em>soap</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct soap_plugin * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>arg</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>plugin registry function, invoked by soap_register_plugin </p> </div> </div> <a class="anchor" id="ae62edbe024c53494a7e67bdc07d548d3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a>* SOAP_FMAC2 soap_mq_begin </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> * </td> <td class="paramname"><em>mq</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get first message in queue. Use msg->soap to invoke service from the queued message, as in soap_serve(&msg->soap). </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">mq</td><td>pointer to the message queue structure created by <a class="el" href="mq_8c.html#ab4229c48976d050769c40495fb9281d2" title="Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap...">soap_mq_queue()</a> </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>pointer to first message in the queue, or NULL </dd></dl> </div> </div> <a class="anchor" id="a73311b8398b32bcf10071add7ef91fb9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 void SOAP_FMAC2 soap_mq_del </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> * </td> <td class="paramname"><em>mq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> * </td> <td class="paramname"><em>msg</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>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(). </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">mq</td><td>pointer to the queue structure </td></tr> <tr><td class="paramname">msg</td><td>pointer to a message in the queue, when NULL delete entire queue </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a16eb014dda676efb5b29cea39f16a00b"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static void soap_mq_delete </td> <td>(</td> <td class="paramtype">struct soap * </td> <td class="paramname"><em>soap</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct soap_plugin * </td> <td class="paramname"><em>p</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a611b2a210304d6f60c628e443ff90b92"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a>* SOAP_FMAC2 soap_mq_get </td> <td>(</td> <td class="paramtype">struct soap * </td> <td class="paramname"><em>soap</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> * </td> <td class="paramname"><em>mq</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Receive message from socket and queue it at the end of the queue. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">soap</td><td>current context </td></tr> <tr><td class="paramname">mq</td><td>pointer to the message queue structure created by <a class="el" href="mq_8c.html#ab4229c48976d050769c40495fb9281d2" title="Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap...">soap_mq_queue()</a> </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>pointer to the message received and queued, or NULL </dd></dl> </div> </div> <a class="anchor" id="a7b291a7d904866af6fbd782a37b0eb12"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static int soap_mq_init </td> <td>(</td> <td class="paramtype">struct soap * </td> <td class="paramname"><em>soap</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structsoap__mq__data.html">soap_mq_data</a> * </td> <td class="paramname"><em>data</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a2b6ef0b60fe79adb8e08fcad48407fb7"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a>* SOAP_FMAC2 soap_mq_next </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> * </td> <td class="paramname"><em>msg</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get next message in queue. Use msg->soap to invoke service from the queued message, as in soap_serve(&msg->soap). </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">msg</td><td>pointer to current message in the queue </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>pointer to next message in the queue, or NULL </dd></dl> </div> </div> <a class="anchor" id="ab4229c48976d050769c40495fb9281d2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 struct <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a>* SOAP_FMAC2 <a class="el" href="structsoap__mq__queue.html">soap_mq_queue</a> </td> <td>(</td> <td class="paramtype">struct soap * </td> <td class="paramname"><em>soap</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Create a new queue structure allocated in the current context. Will be deallocated with soap_end(soap). Use <a class="el" href="mq_8c.html#a611b2a210304d6f60c628e443ff90b92" title="Receive message from socket and queue it at the end of the queue. ">soap_mq_get()</a> to receive a message from the current socket to add to the queue. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">soap</td><td>current context </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>pointer to the queue structure </dd></dl> </div> </div> <a class="anchor" id="acfd5dd8f99d720ab37b27eb180a7a7df"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static size_t soap_mq_recv </td> <td>(</td> <td class="paramtype">struct soap * </td> <td class="paramname"><em>soap</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="ab818b02228466e8ddeeb8fc2c9d35403"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static int soap_mq_serveloop </td> <td>(</td> <td class="paramtype">struct soap * </td> <td class="paramname"><em>soap</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a448068c3eeee201d750f9c817a176e17"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static void soap_mq_set </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structsoap__mq__msg.html">soap_mq_msg</a> * </td> <td class="paramname"><em>msg</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Variable Documentation</h2> <a class="anchor" id="a20d6f17af7aee5cf23b9ffc2a6011a61"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char soap_mq_id[] = <a class="el" href="mq_8h.html#a17566560281374870f12ef5481eb931a">SOAP_MQ_ID</a></td> </tr> </table> </div><div class="memdoc"> </div> </div> </div><!-- contents --> <hr class="footer"> <address class="footer"> Copyright (C) 2016, Robert van Engelen, Genivia Inc., All Rights Reserved. </address> <address class="footer"><small> Converted on Mon Dec 19 2016 18:22:50 by <a target="_blank" href="http://www.doxygen.org/index.html">Doxygen</a> 1.8.11</small></address> <br> <div style="height: 246px; background: #DBDBDB;"> </body> </html>