<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>meanwhile: mwService Struct Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.4 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li class="current"><a href="classes.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> <h1>mwService Struct Reference</h1><!-- doxytag: class="mwService" --><code>#include <<a class="el" href="mw__service_8h-source.html">mw_service.h</a>></code> <p> <hr><a name="_details"></a><h2>Detailed Description</h2> A service is the recipient of sendOnCnl messages sent over channels marked with the corresponding service id. <p> Services provide functionality such as IM relaying, Awareness tracking and notification, and Conference handling. It is a service's responsibility to accept or destroy channels, and to process data sent over those channels <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">guint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#d2d3325c80ad007b9cf0e7ac8c7ec63f">type</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">the unique identifier by which this service is registered. <a href="#d2d3325c80ad007b9cf0e7ac8c7ec63f"></a><br></td></tr> <tr><td colspan="2"><br><h2>Related Functions</h2></td></tr> <tr><td colspan="2">(Note that these are not member functions.) <br><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="mw__service_8h.html#a61b5086d147a38f2dfd6c136916f232">mwService_funcClear</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#9b86cc0545150a4fde3ab3060e803e58">clear</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The service's cleanup handler. <a href="#9b86cc0545150a4fde3ab3060e803e58"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">GDestroyNotify </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#d8baae0714a14f4a89f224296e83c332">client_cleanup</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Optional client data cleanup function. <a href="#d8baae0714a14f4a89f224296e83c332"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">gpointer </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#0029f74d1a50227dc5d89f1f1caa35e7">client_data</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Optional client data, not for use by service implementations. <a href="#0029f74d1a50227dc5d89f1f1caa35e7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="mw__service_8h.html#cdf3ce1a852e3cc3cf1379e083ff8ffd">mwService_funcGetDesc</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#2bcd80250a76d4deb90761c5253c5b98">get_desc</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><dl class="return" compact><dt><b>Returns:</b></dt><dd>string short description of the service </dd></dl> <a href="#2bcd80250a76d4deb90761c5253c5b98"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="mw__service_8h.html#f4becc5dcb225e192b6c92d8a72a432c">mwService_funcGetName</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#5e0242406b28deb224c76bf1ff9084bc">get_name</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><dl class="return" compact><dt><b>Returns:</b></dt><dd>string short name of the service </dd></dl> <a href="#5e0242406b28deb224c76bf1ff9084bc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="mw__service_8h.html#71e4e8071893d3588d3c8f5f3be660b4">mwService_funcRecv</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#aac0e0bd9612b24dcf64de5cb72fe304">recv</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The service's input handler. <a href="#aac0e0bd9612b24dcf64de5cb72fe304"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="mw__service_8h.html#7bf9bcb70ba1944f027140328edcb145">mwService_funcRecvAccept</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#9dfbe087438b6061cc7e7f72e0e5e86f">recv_accept</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The service's channel accept handler. <a href="#9dfbe087438b6061cc7e7f72e0e5e86f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="mw__service_8h.html#39b4834a00b1e19d98432fbfe9653ab8">mwService_funcRecvCreate</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#b203804ec5846ff3f14646d43c85f058">recv_create</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The service's channel create handler. <a href="#b203804ec5846ff3f14646d43c85f058"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="mw__service_8h.html#4741b85ca24938110fb9d13d6682c497">mwService_funcRecvDestroy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#60154d557db64b36a988befdca631fa4">recv_destroy</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The service's channel destroy handler. <a href="#60154d557db64b36a988befdca631fa4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structmwSession.html">mwSession</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#0c2badd2256155b2bee149fa4b57b7d6">session</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">session this service is attached to. <a href="#0c2badd2256155b2bee149fa4b57b7d6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="mw__service_8h.html#345848a5ac34f9fbe69a5dfea7fbc4b9">mwService_funcStart</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#bc050a99570b3255eb3822dbe8d70a9b">start</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The service's start handler. <a href="#bc050a99570b3255eb3822dbe8d70a9b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum <a class="el" href="mw__service_8h.html#7ce6ac62b951a443c05f541c8ace90a9">mwServiceState</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#b5adc0f5a0cbeddaece7a4512ec66099">state</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">the state of this service. <a href="#b5adc0f5a0cbeddaece7a4512ec66099"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="mw__service_8h.html#1179c7de60ece58e88a69e204d0de59e">mwService_funcStop</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmwService.html#4d237f5966d8c4b7ef92c8e0bbd82a20">stop</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The service's stop handler. <a href="#4d237f5966d8c4b7ef92c8e0bbd82a20"></a><br></td></tr> </table> <hr><h2>Friends And Related Function Documentation</h2> <a class="anchor" name="9b86cc0545150a4fde3ab3060e803e58"></a><!-- doxytag: member="mwService::clear" ref="9b86cc0545150a4fde3ab3060e803e58" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="mw__service_8h.html#a61b5086d147a38f2dfd6c136916f232">mwService_funcClear</a> <a class="el" href="structmwService.html#9b86cc0545150a4fde3ab3060e803e58">clear</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The service's cleanup handler. <p> Service implementations should presume that <a class="el" href="structmwService.html#4d237f5966d8c4b7ef92c8e0bbd82a20" title="The service's stop handler.">mwService::stop</a> will be called first. The clear handler is not for shutting down channels or generating non-cleanup side-effects, it is only for handling tear-down of the service, and will only be called once for any instance. </div> </div><p> <a class="anchor" name="d8baae0714a14f4a89f224296e83c332"></a><!-- doxytag: member="mwService::client_cleanup" ref="d8baae0714a14f4a89f224296e83c332" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GDestroyNotify <a class="el" href="structmwService.html#d8baae0714a14f4a89f224296e83c332">client_cleanup</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Optional client data cleanup function. <p> Called with client_data from mwService_free </div> </div><p> <a class="anchor" name="0029f74d1a50227dc5d89f1f1caa35e7"></a><!-- doxytag: member="mwService::client_data" ref="0029f74d1a50227dc5d89f1f1caa35e7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">gpointer <a class="el" href="structmwService.html#0029f74d1a50227dc5d89f1f1caa35e7">client_data</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Optional client data, not for use by service implementations. <p> </div> </div><p> <a class="anchor" name="2bcd80250a76d4deb90761c5253c5b98"></a><!-- doxytag: member="mwService::get_desc" ref="2bcd80250a76d4deb90761c5253c5b98" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="mw__service_8h.html#cdf3ce1a852e3cc3cf1379e083ff8ffd">mwService_funcGetDesc</a> <a class="el" href="structmwService.html#2bcd80250a76d4deb90761c5253c5b98">get_desc</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>string short description of the service </dd></dl> <p> </div> </div><p> <a class="anchor" name="5e0242406b28deb224c76bf1ff9084bc"></a><!-- doxytag: member="mwService::get_name" ref="5e0242406b28deb224c76bf1ff9084bc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="mw__service_8h.html#f4becc5dcb225e192b6c92d8a72a432c">mwService_funcGetName</a> <a class="el" href="structmwService.html#5e0242406b28deb224c76bf1ff9084bc">get_name</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>string short name of the service </dd></dl> <p> </div> </div><p> <a class="anchor" name="aac0e0bd9612b24dcf64de5cb72fe304"></a><!-- doxytag: member="mwService::recv" ref="aac0e0bd9612b24dcf64de5cb72fe304" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="mw__service_8h.html#71e4e8071893d3588d3c8f5f3be660b4">mwService_funcRecv</a> <a class="el" href="structmwService.html#aac0e0bd9612b24dcf64de5cb72fe304">recv</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The service's input handler. <p> Called when the session receives data on a channel belonging to this service </div> </div><p> <a class="anchor" name="9dfbe087438b6061cc7e7f72e0e5e86f"></a><!-- doxytag: member="mwService::recv_accept" ref="9dfbe087438b6061cc7e7f72e0e5e86f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="mw__service_8h.html#7bf9bcb70ba1944f027140328edcb145">mwService_funcRecvAccept</a> <a class="el" href="structmwService.html#9dfbe087438b6061cc7e7f72e0e5e86f">recv_accept</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The service's channel accept handler. <p> Called when the session receives a channel accept message for a channel with a service matching this service's type. </div> </div><p> <a class="anchor" name="b203804ec5846ff3f14646d43c85f058"></a><!-- doxytag: member="mwService::recv_create" ref="b203804ec5846ff3f14646d43c85f058" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="mw__service_8h.html#39b4834a00b1e19d98432fbfe9653ab8">mwService_funcRecvCreate</a> <a class="el" href="structmwService.html#b203804ec5846ff3f14646d43c85f058">recv_create</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The service's channel create handler. <p> Called when the session receives a channel create message with a service matching this service's type. </div> </div><p> <a class="anchor" name="60154d557db64b36a988befdca631fa4"></a><!-- doxytag: member="mwService::recv_destroy" ref="60154d557db64b36a988befdca631fa4" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="mw__service_8h.html#4741b85ca24938110fb9d13d6682c497">mwService_funcRecvDestroy</a> <a class="el" href="structmwService.html#60154d557db64b36a988befdca631fa4">recv_destroy</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The service's channel destroy handler. <p> Called when the session receives a channel destroy message for a channel with a service matching this service's type. </div> </div><p> <a class="anchor" name="0c2badd2256155b2bee149fa4b57b7d6"></a><!-- doxytag: member="mwService::session" ref="0c2badd2256155b2bee149fa4b57b7d6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structmwSession.html">mwSession</a>* <a class="el" href="structmwService.html#0c2badd2256155b2bee149fa4b57b7d6">session</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> session this service is attached to. <p> </div> </div><p> <a class="anchor" name="bc050a99570b3255eb3822dbe8d70a9b"></a><!-- doxytag: member="mwService::start" ref="bc050a99570b3255eb3822dbe8d70a9b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="mw__service_8h.html#345848a5ac34f9fbe69a5dfea7fbc4b9">mwService_funcStart</a> <a class="el" href="structmwService.html#bc050a99570b3255eb3822dbe8d70a9b">start</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The service's start handler. <p> Called upon the receipt of a service available message. </div> </div><p> <a class="anchor" name="b5adc0f5a0cbeddaece7a4512ec66099"></a><!-- doxytag: member="mwService::state" ref="b5adc0f5a0cbeddaece7a4512ec66099" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="mw__service_8h.html#7ce6ac62b951a443c05f541c8ace90a9">mwServiceState</a> <a class="el" href="structmwService.html#b5adc0f5a0cbeddaece7a4512ec66099">state</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> the state of this service. <p> Determines whether or not the session should call the start function upon receipt of a service available message. Should not be set or checked by hand. </div> </div><p> <a class="anchor" name="4d237f5966d8c4b7ef92c8e0bbd82a20"></a><!-- doxytag: member="mwService::stop" ref="4d237f5966d8c4b7ef92c8e0bbd82a20" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="mw__service_8h.html#1179c7de60ece58e88a69e204d0de59e">mwService_funcStop</a> <a class="el" href="structmwService.html#4d237f5966d8c4b7ef92c8e0bbd82a20">stop</a><code> [related]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The service's stop handler. <p> Called when the session is shutting down, or when the service is free'd. </div> </div><p> <hr><h2>Field Documentation</h2> <a class="anchor" name="d2d3325c80ad007b9cf0e7ac8c7ec63f"></a><!-- doxytag: member="mwService::type" ref="d2d3325c80ad007b9cf0e7ac8c7ec63f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">guint32 <a class="el" href="structmwService.html#d2d3325c80ad007b9cf0e7ac8c7ec63f">mwService::type</a> </td> </tr> </table> </div> <div class="memdoc"> <p> the unique identifier by which this service is registered. <p> The type value also relates to those channels which will be directed to this service </div> </div><p> <hr>The documentation for this struct was generated from the following file:<ul> <li><a class="el" href="mw__service_8h-source.html">mw_service.h</a></ul> <hr size="1"><address style="text-align: right;"><small>Generated on Wed Dec 19 09:10:34 2007 for meanwhile by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.4 </small></address> </body> </html>