<!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 - sessions.h 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="http://www.genivia.com"><img alt="Genivia" src="GeniviaLogo2_trans_noslogan.png"/></a></td> <td class="tab_home"><a href="http://www.genivia.com">Home</a></td> <td class="tab_home"><a href="http://www.genivia.com/docs.html">Documentation</a></td> <td> <div style="float: right; font-size: 18px; font-weight: bold;">sessions.h File Reference</div> <br> <div style="float: right; font-size: 10px;">updated Wed Aug 17 2016</div> </td> <td width="10%"> </td> </tr> </tbody> </table> </div> <!-- Generated by Doxygen 1.8.10 --> <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="#nested-classes">Classes</a> | <a href="#define-members">Macros</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">sessions.h File Reference</div> </div> </div><!--header--> <div class="contents"> <div class="textblock"><code>#include "stdsoap2.h"</code><br /> <code>#include "<a class="el" href="threads_8h.html">threads.h</a>"</code><br /> </div><div class="textblock"><div class="dynheader"> Include dependency graph for sessions.h:</div> <div class="dyncontent"> <div class="center"><img src="sessions_8h__incl.png" border="0" usemap="#sessions_8h" alt=""/></div> <map name="sessions_8h" id="sessions_8h"> <area shape="rect" id="node5" href="threads_8h.html" title="threads.h" alt="" coords="86,83,161,111"/> </map> </div> </div><div class="textblock"><div class="dynheader"> This graph shows which files directly or indirectly include this file:</div> <div class="dyncontent"> <div class="center"><img src="sessions_8h__dep__incl.png" border="0" usemap="#sessions_8hdep" alt=""/></div> <map name="sessions_8hdep" id="sessions_8hdep"> <area shape="rect" id="node3" href="sessions_8c.html" title="sessions.c" alt="" coords="5,83,88,111"/> </map> </div> </div><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structsoap__session.html">soap_session</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A session node. <a href="structsoap__session.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structsoap__session__var.html">soap_session_var</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A session variable node. Session variables are name-value pairs. <a href="structsoap__session__var.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:a7646ccad5d55f18736f7df123cf23411"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a7646ccad5d55f18736f7df123cf23411">SESSIONS_ID</a>   "SESSIONS-1.0"</td></tr> <tr class="separator:a7646ccad5d55f18736f7df123cf23411"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9c37a9f84d28c5da2ac8b92a1807ca2e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a9c37a9f84d28c5da2ac8b92a1807ca2e">SESSION_MAX</a>   (8192)</td></tr> <tr class="separator:a9c37a9f84d28c5da2ac8b92a1807ca2e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aee7a621bcd4c46172f8664c2f8998444"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#aee7a621bcd4c46172f8664c2f8998444">SESSIONS_DEFAULT_MAX_INACTIVE_SECS</a>   (300);</td></tr> <tr class="separator:aee7a621bcd4c46172f8664c2f8998444"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a075bc56615ff26e8889f179aa52f8ed7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a075bc56615ff26e8889f179aa52f8ed7">SESSION_PURGE_INTERVAL</a>   (300)</td></tr> <tr class="separator:a075bc56615ff26e8889f179aa52f8ed7"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:aad73583096a7750438cc7f622aeed575"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#aad73583096a7750438cc7f622aeed575">sessions</a> (struct soap *soap, struct soap_plugin *plugin, void *arg)</td></tr> <tr class="memdesc:aad73583096a7750438cc7f622aeed575"><td class="mdescLeft"> </td><td class="mdescRight">Plugin registry function, invoked by soap_register_plugin. <a href="#aad73583096a7750438cc7f622aeed575">More...</a><br /></td></tr> <tr class="separator:aad73583096a7750438cc7f622aeed575"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a539448f198293a94eae014318369036f"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__session.html">soap_session</a> *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a539448f198293a94eae014318369036f">soap_get_sessions_head</a> ()</td></tr> <tr class="memdesc:a539448f198293a94eae014318369036f"><td class="mdescLeft"> </td><td class="mdescRight">Gets soap_sessions (first node in sessions linked list). <a href="#a539448f198293a94eae014318369036f">More...</a><br /></td></tr> <tr class="separator:a539448f198293a94eae014318369036f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af89638dcb0fed58b795c3134f847d69d"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 void SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#af89638dcb0fed58b795c3134f847d69d">soap_purge_sessions</a> (struct soap *soap, const char *domain, const char *path, time_t when)</td></tr> <tr class="memdesc:af89638dcb0fed58b795c3134f847d69d"><td class="mdescLeft"> </td><td class="mdescRight">Removes all sessions that have been stale longer than their max_inactive_secs allows. -1 max_inactive_secs means the session will never expire. The when parameter is usually the current time, i.e. time(NULL) to purge sessions that expire after the when time. <a href="#af89638dcb0fed58b795c3134f847d69d">More...</a><br /></td></tr> <tr class="separator:af89638dcb0fed58b795c3134f847d69d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a61db3eb7e302105558a0871e120fa108"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__session.html">soap_session</a> *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a61db3eb7e302105558a0871e120fa108">soap_start_session</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:a61db3eb7e302105558a0871e120fa108"><td class="mdescLeft"> </td><td class="mdescRight">Creates a new session with a random 128-bit ID. A cookie will be created with name SESSION_COOKIE_NAME and the given domain and path. If there already exists a session ID cookie, the only action will be updating the session's last_touched to now. Returns a pointer to the session. <a href="#a61db3eb7e302105558a0871e120fa108">More...</a><br /></td></tr> <tr class="separator:a61db3eb7e302105558a0871e120fa108"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa0174ffa84386ab41f9e1d2ba8794d04"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__session.html">soap_session</a> *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#aa0174ffa84386ab41f9e1d2ba8794d04">soap_get_session</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:aa0174ffa84386ab41f9e1d2ba8794d04"><td class="mdescLeft"> </td><td class="mdescRight">Finds the session identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path. Updates session's last_touched to now. Returns NULL if not found. <a href="#aa0174ffa84386ab41f9e1d2ba8794d04">More...</a><br /></td></tr> <tr class="separator:aa0174ffa84386ab41f9e1d2ba8794d04"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a522ae0821d5fe7c649592815e59f3c6a"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a522ae0821d5fe7c649592815e59f3c6a">soap_get_num_sessions</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:a522ae0821d5fe7c649592815e59f3c6a"><td class="mdescLeft"> </td><td class="mdescRight">Gets the number of sessions in the database. <a href="#a522ae0821d5fe7c649592815e59f3c6a">More...</a><br /></td></tr> <tr class="separator:a522ae0821d5fe7c649592815e59f3c6a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab109b671edecc2dd065b5416c2f3c45a"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__session.html">soap_session</a> *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#ab109b671edecc2dd065b5416c2f3c45a">soap_regenerate_session_id</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:ab109b671edecc2dd065b5416c2f3c45a"><td class="mdescLeft"> </td><td class="mdescRight">The session ID for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path) will be set to a new random 128-bit ID. Also updates the cookie. Returns a pointer to the session. <a href="#ab109b671edecc2dd065b5416c2f3c45a">More...</a><br /></td></tr> <tr class="separator:ab109b671edecc2dd065b5416c2f3c45a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0129b80db0867c481da326066479d0c3"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a0129b80db0867c481da326066479d0c3">soap_get_session_rolling</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:a0129b80db0867c481da326066479d0c3"><td class="mdescLeft"> </td><td class="mdescRight">Gets the <code>rolling</code> flag for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the session was not found or is expired. <a href="#a0129b80db0867c481da326066479d0c3">More...</a><br /></td></tr> <tr class="separator:a0129b80db0867c481da326066479d0c3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab4bfe8aeec045e9f31bd860fa4627ef8"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#ab4bfe8aeec045e9f31bd860fa4627ef8">soap_set_session_rolling</a> (struct soap *soap, int rolling, const char *domain, const char *path)</td></tr> <tr class="memdesc:ab4bfe8aeec045e9f31bd860fa4627ef8"><td class="mdescLeft"> </td><td class="mdescRight">Sets the <code>rolling</code> flag for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). If successful, returns SOAP_OK, or SOAP_ERR otherwise. <a href="#ab4bfe8aeec045e9f31bd860fa4627ef8">More...</a><br /></td></tr> <tr class="separator:ab4bfe8aeec045e9f31bd860fa4627ef8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7455f112585da290cf814b7b002496a6"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a7455f112585da290cf814b7b002496a6">soap_set_session_cookie_maxage</a> (struct soap *soap, long maxage, const char *domain, const char *path)</td></tr> <tr class="memdesc:a7455f112585da290cf814b7b002496a6"><td class="mdescLeft"> </td><td class="mdescRight">Sets the cookie_maxage for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the cookie will be a session cookie. If successful, returns SOAP_OK, or SOAP_ERR otherwise. <a href="#a7455f112585da290cf814b7b002496a6">More...</a><br /></td></tr> <tr class="separator:a7455f112585da290cf814b7b002496a6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaf0feecf4196b36cb479faf3ec5ccf87"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 long SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#aaf0feecf4196b36cb479faf3ec5ccf87">soap_get_session_cookie_maxage</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:aaf0feecf4196b36cb479faf3ec5ccf87"><td class="mdescLeft"> </td><td class="mdescRight">Gets the cookie_maxage for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the cookie is a session cookie. 0 means a session was not found or is expired. <a href="#aaf0feecf4196b36cb479faf3ec5ccf87">More...</a><br /></td></tr> <tr class="separator:aaf0feecf4196b36cb479faf3ec5ccf87"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaa12654f17fa42f4cdd93a3a11aec435"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#aaa12654f17fa42f4cdd93a3a11aec435">soap_set_session_max_inactive_secs</a> (struct soap *soap, long max, const char *domain, const char *path)</td></tr> <tr class="memdesc:aaa12654f17fa42f4cdd93a3a11aec435"><td class="mdescLeft"> </td><td class="mdescRight">Sets the max_inactive_secs for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the session will never expire. If successful, returns SOAP_OK, or SOAP_ERR otherwise. <a href="#aaa12654f17fa42f4cdd93a3a11aec435">More...</a><br /></td></tr> <tr class="separator:aaa12654f17fa42f4cdd93a3a11aec435"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac6d91a83816d098d4811192616bad6f0"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 long SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#ac6d91a83816d098d4811192616bad6f0">soap_get_session_max_inactive_secs</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:ac6d91a83816d098d4811192616bad6f0"><td class="mdescLeft"> </td><td class="mdescRight">Gets the max_inactive_secs for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the session will never expire. 0 means the session wasn't found or is expired. <a href="#ac6d91a83816d098d4811192616bad6f0">More...</a><br /></td></tr> <tr class="separator:ac6d91a83816d098d4811192616bad6f0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a341353355afa9a8dfbfb3a348a928c8f"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 void SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a341353355afa9a8dfbfb3a348a928c8f">soap_end_sessions</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:a341353355afa9a8dfbfb3a348a928c8f"><td class="mdescLeft"> </td><td class="mdescRight">Frees all sessions in database. <a href="#a341353355afa9a8dfbfb3a348a928c8f">More...</a><br /></td></tr> <tr class="separator:a341353355afa9a8dfbfb3a348a928c8f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a086a1202b1aec2daa62f0e03dfc6d6ef"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 int SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a086a1202b1aec2daa62f0e03dfc6d6ef">soap_get_num_session_vars</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:a086a1202b1aec2daa62f0e03dfc6d6ef"><td class="mdescLeft"> </td><td class="mdescRight">Gets the number of sessions variables in the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). Returns -1 if the session does not exist. <a href="#a086a1202b1aec2daa62f0e03dfc6d6ef">More...</a><br /></td></tr> <tr class="separator:a086a1202b1aec2daa62f0e03dfc6d6ef"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad73417b764dd9ebfcf0eba4c8dff48f5"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 void SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#ad73417b764dd9ebfcf0eba4c8dff48f5">soap_end_session</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:ad73417b764dd9ebfcf0eba4c8dff48f5"><td class="mdescLeft"> </td><td class="mdescRight">Frees the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). Also clears the cookie. <a href="#ad73417b764dd9ebfcf0eba4c8dff48f5">More...</a><br /></td></tr> <tr class="separator:ad73417b764dd9ebfcf0eba4c8dff48f5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a60cae529297cd676f6781328c0f39cd5"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 struct <a class="el" href="structsoap__session__var.html">soap_session_var</a> *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a60cae529297cd676f6781328c0f39cd5">soap_set_session_var</a> (struct soap *soap, const char *name, const char *value, const char *domain, const char *path)</td></tr> <tr class="memdesc:a60cae529297cd676f6781328c0f39cd5"><td class="mdescLeft"> </td><td class="mdescRight">Add new session_var with the given name and value to the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). If the name is already used, the value is re-written. If successful, returns pointer to a session_var node in the session's linked list, or NULL otherwise. <a href="#a60cae529297cd676f6781328c0f39cd5">More...</a><br /></td></tr> <tr class="separator:a60cae529297cd676f6781328c0f39cd5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9ef5df49d2579505149b4f7ca5c388cd"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 const char *SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a9ef5df49d2579505149b4f7ca5c388cd">soap_get_session_var</a> (struct soap *soap, const char *name, const char *domain, const char *path)</td></tr> <tr class="memdesc:a9ef5df49d2579505149b4f7ca5c388cd"><td class="mdescLeft"> </td><td class="mdescRight">Returns session_var value by name in the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). Returns NULL if not found. <a href="#a9ef5df49d2579505149b4f7ca5c388cd">More...</a><br /></td></tr> <tr class="separator:a9ef5df49d2579505149b4f7ca5c388cd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a111decf2a202afda5381ada3d6904d06"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 void SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#a111decf2a202afda5381ada3d6904d06">soap_clr_session_var</a> (struct soap *soap, const char *name, const char *domain, const char *path)</td></tr> <tr class="memdesc:a111decf2a202afda5381ada3d6904d06"><td class="mdescLeft"> </td><td class="mdescRight">Frees session var with the given name in the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). <a href="#a111decf2a202afda5381ada3d6904d06">More...</a><br /></td></tr> <tr class="separator:a111decf2a202afda5381ada3d6904d06"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aed123a1f21f9a60d671966d6d009b39a"><td class="memItemLeft" align="right" valign="top">SOAP_FMAC1 void SOAP_FMAC2 </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#aed123a1f21f9a60d671966d6d009b39a">soap_clr_session_vars</a> (struct soap *soap, const char *domain, const char *path)</td></tr> <tr class="memdesc:aed123a1f21f9a60d671966d6d009b39a"><td class="mdescLeft"> </td><td class="mdescRight">Frees all session vars in the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). <a href="#aed123a1f21f9a60d671966d6d009b39a">More...</a><br /></td></tr> <tr class="separator:aed123a1f21f9a60d671966d6d009b39a"><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:ab4cacc320c88e2c5ccdacd85f06ad98e"><td class="memItemLeft" align="right" valign="top">const char </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#ab4cacc320c88e2c5ccdacd85f06ad98e">sessions_id</a> []</td></tr> <tr class="separator:ab4cacc320c88e2c5ccdacd85f06ad98e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aab78b09e737a041ca73d7b642dfe23d0"><td class="memItemLeft" align="right" valign="top">static const char </td><td class="memItemRight" valign="bottom"><a class="el" href="sessions_8h.html#aab78b09e737a041ca73d7b642dfe23d0">SESSION_COOKIE_NAME</a> [] = "GSOAP_SESSIONID"</td></tr> <tr class="separator:aab78b09e737a041ca73d7b642dfe23d0"><td class="memSeparator" colspan="2"> </td></tr> </table> <h2 class="groupheader">Macro Definition Documentation</h2> <a class="anchor" id="a9c37a9f84d28c5da2ac8b92a1807ca2e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SESSION_MAX   (8192)</td> </tr> </table> </div><div class="memdoc"> <p>Max number of sessions allowed </p> </div> </div> <a class="anchor" id="a075bc56615ff26e8889f179aa52f8ed7"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SESSION_PURGE_INTERVAL   (300)</td> </tr> </table> </div><div class="memdoc"> <p>On every session database access, the time since the last database purge is checked. If it's been longer than this interval (in seconds), any expired sessions will be purged with soap_session_purge(). A value of 0 means a purge will occcur on every database access. A value of -1 means a purge will never occur. </p> </div> </div> <a class="anchor" id="aee7a621bcd4c46172f8664c2f8998444"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SESSIONS_DEFAULT_MAX_INACTIVE_SECS   (300);</td> </tr> </table> </div><div class="memdoc"> <p>Default max amount of stale time (seconds) server-side before a session is expired </p> </div> </div> <a class="anchor" id="a7646ccad5d55f18736f7df123cf23411"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SESSIONS_ID   "SESSIONS-1.0"</td> </tr> </table> </div><div class="memdoc"> <p>plugin identification for plugin registry </p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="aad73583096a7750438cc7f622aeed575"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 sessions </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>plugin</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="a111decf2a202afda5381ada3d6904d06"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 void SOAP_FMAC2 soap_clr_session_var </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">const char * </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Frees session var with the given name in the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). </p> </div> </div> <a class="anchor" id="aed123a1f21f9a60d671966d6d009b39a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 void SOAP_FMAC2 soap_clr_session_vars </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Frees all session vars in the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). </p> </div> </div> <a class="anchor" id="ad73417b764dd9ebfcf0eba4c8dff48f5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 void SOAP_FMAC2 soap_end_session </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Frees the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). Also clears the cookie. </p> </div> </div> <a class="anchor" id="a341353355afa9a8dfbfb3a348a928c8f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 void SOAP_FMAC2 soap_end_sessions </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Frees all sessions in database. </p> </div> </div> <a class="anchor" id="a086a1202b1aec2daa62f0e03dfc6d6ef"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 soap_get_num_session_vars </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the number of sessions variables in the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). Returns -1 if the session does not exist. </p> </div> </div> <a class="anchor" id="a522ae0821d5fe7c649592815e59f3c6a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 soap_get_num_sessions </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the number of sessions in the database. </p> </div> </div> <a class="anchor" id="aa0174ffa84386ab41f9e1d2ba8794d04"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 struct <a class="el" href="structsoap__session.html">soap_session</a>* SOAP_FMAC2 soap_get_session </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Finds the session identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path. Updates session's last_touched to now. Returns NULL if not found. </p> </div> </div> <a class="anchor" id="aaf0feecf4196b36cb479faf3ec5ccf87"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 long SOAP_FMAC2 soap_get_session_cookie_maxage </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the cookie_maxage for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the cookie is a session cookie. 0 means a session was not found or is expired. </p> </div> </div> <a class="anchor" id="ac6d91a83816d098d4811192616bad6f0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 long SOAP_FMAC2 soap_get_session_max_inactive_secs </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the max_inactive_secs for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the session will never expire. 0 means the session wasn't found or is expired. </p> </div> </div> <a class="anchor" id="a0129b80db0867c481da326066479d0c3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 soap_get_session_rolling </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the <code>rolling</code> flag for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the session was not found or is expired. </p> </div> </div> <a class="anchor" id="a9ef5df49d2579505149b4f7ca5c388cd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 const char* SOAP_FMAC2 soap_get_session_var </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">const char * </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Returns session_var value by name in the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). Returns NULL if not found. </p> </div> </div> <a class="anchor" id="a539448f198293a94eae014318369036f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 struct <a class="el" href="structsoap__session.html">soap_session</a>* SOAP_FMAC2 soap_get_sessions_head </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Gets soap_sessions (first node in sessions linked list). </p> </div> </div> <a class="anchor" id="af89638dcb0fed58b795c3134f847d69d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 void SOAP_FMAC2 soap_purge_sessions </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>when</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Removes all sessions that have been stale longer than their max_inactive_secs allows. -1 max_inactive_secs means the session will never expire. The when parameter is usually the current time, i.e. time(NULL) to purge sessions that expire after the when time. </p> <p>This is called internally every time a session or a session_var is accessed, so it shouldn't ever be necessary to manually call this function.</p> <p>Only will purge when the last time we purged was more than SESSION_PURGE_INTERVAL seconds ago (defined in <a class="el" href="sessions_8h.html">sessions.h</a>). SESSION_PURGE_INTERVAL == -1 means never purge. SESSION_PURGE_INTERVAL == 0 means always purge. </p> </div> </div> <a class="anchor" id="ab109b671edecc2dd065b5416c2f3c45a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 struct <a class="el" href="structsoap__session.html">soap_session</a>* SOAP_FMAC2 soap_regenerate_session_id </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>The session ID for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path) will be set to a new random 128-bit ID. Also updates the cookie. Returns a pointer to the session. </p> </div> </div> <a class="anchor" id="a7455f112585da290cf814b7b002496a6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 soap_set_session_cookie_maxage </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">long </td> <td class="paramname"><em>maxage</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Sets the cookie_maxage for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the cookie will be a session cookie. If successful, returns SOAP_OK, or SOAP_ERR otherwise. </p> </div> </div> <a class="anchor" id="aaa12654f17fa42f4cdd93a3a11aec435"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 soap_set_session_max_inactive_secs </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">long </td> <td class="paramname"><em>max</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Sets the max_inactive_secs for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). -1 means the session will never expire. If successful, returns SOAP_OK, or SOAP_ERR otherwise. </p> </div> </div> <a class="anchor" id="ab4bfe8aeec045e9f31bd860fa4627ef8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 int SOAP_FMAC2 soap_set_session_rolling </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">int </td> <td class="paramname"><em>rolling</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Sets the <code>rolling</code> flag for the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). If successful, returns SOAP_OK, or SOAP_ERR otherwise. </p> </div> </div> <a class="anchor" id="a60cae529297cd676f6781328c0f39cd5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 struct <a class="el" href="structsoap__session__var.html">soap_session_var</a>* SOAP_FMAC2 soap_set_session_var </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">const char * </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>value</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Add new session_var with the given name and value to the current session (identified by the cookie with name SESSION_COOKIE_NAME and the given domain and path). If the name is already used, the value is re-written. If successful, returns pointer to a session_var node in the session's linked list, or NULL otherwise. </p> </div> </div> <a class="anchor" id="a61db3eb7e302105558a0871e120fa108"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOAP_FMAC1 struct <a class="el" href="structsoap__session.html">soap_session</a>* SOAP_FMAC2 soap_start_session </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">const char * </td> <td class="paramname"><em>domain</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a new session with a random 128-bit ID. A cookie will be created with name SESSION_COOKIE_NAME and the given domain and path. If there already exists a session ID cookie, the only action will be updating the session's last_touched to now. Returns a pointer to the session. </p> </div> </div> <h2 class="groupheader">Variable Documentation</h2> <a class="anchor" id="aab78b09e737a041ca73d7b642dfe23d0"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const char SESSION_COOKIE_NAME[] = "GSOAP_SESSIONID"</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Name used for session ID cookies </p> </div> </div> <a class="anchor" id="ab4cacc320c88e2c5ccdacd85f06ad98e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char sessions_id[]</td> </tr> </table> </div><div class="memdoc"> <p>plugin identification for plugin registry </p> </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 Wed Aug 17 2016 10:37:47 by <a target="_blank" href="http://www.doxygen.org/index.html">Doxygen</a> 1.8.10</small></address> <br> <div style="height: 246px; background: #DBDBDB;"> </body> </html>