Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > b3a1f4d91c26f535919e39e25606614a > files > 1114

wt-doc-3.2.3-1.fc18.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Wt: Wt::Auth::User Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Wt
   &#160;<span id="projectnumber">3.2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceWt.html">Wt</a>      </li>
      <li class="navelem"><a class="el" href="namespaceWt_1_1Auth.html">Auth</a>      </li>
      <li class="navelem"><a class="el" href="classWt_1_1Auth_1_1User.html">User</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Wt::Auth::User Class Reference<div class="ingroups"><a class="el" href="group__auth.html">Authentication module (Wt::Auth)</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="Wt::Auth::User" -->
<p>A user.  
 <a href="classWt_1_1Auth_1_1User.html#details">More...</a></p>

<p><code>#include &lt;Wt/Auth/User&gt;</code></p>

<p><a href="classWt_1_1Auth_1_1User-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">Status</a> { <a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437a35904fc75f2d7a6dd52f952487603a1d">Disabled</a>, 
<a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437a4bdc87727a5f54db977b9e192f05e689">Normal</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for a user's account status.  <a href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">EmailTokenRole</a> { <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674ba17d35cc3b85d25c5d3fbfccc8068752b">VerifyEmail</a>, 
<a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674ba0261f8dbe3766d885a2be9d7619c85d0">LostPassword</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for an email token stored for the user.  <a href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a2319756742238e5f4809d754e2fc735b">User</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a2319756742238e5f4809d754e2fc735b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a2bd7e605d6bac3210076a260fab24d4d">User</a> (const std::string &amp;id, const <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> &amp;database)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a2bd7e605d6bac3210076a260fab24d4d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#aafdb7f7f04974280d0c2b3e30528a1f8">database</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user database.  <a href="#aafdb7f7f04974280d0c2b3e30528a1f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#ab1387f9ab708ef08a5228cf60cb0428c">operator==</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Comparison operator.  <a href="#ab1387f9ab708ef08a5228cf60cb0428c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a8628e4b9a6e39a44349ab7a773dc0e6c">operator!=</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Comparison operator.  <a href="#a8628e4b9a6e39a44349ab7a773dc0e6c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a933b6fc5683f4ee3f2c414bcb2440202">isValid</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the user is valid.  <a href="#a933b6fc5683f4ee3f2c414bcb2440202"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#acdacd8abd3702d9a8e76c75b64c90c9d">id</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user id.  <a href="#acdacd8abd3702d9a8e76c75b64c90c9d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45dbcefef2dfd32ec99b6d7cc3c3ad34"></a><!-- doxytag: member="Wt::Auth::User::identity" ref="a45dbcefef2dfd32ec99b6d7cc3c3ad34" args="(const std::string &amp;provider) const " -->
<a class="el" href="classWt_1_1WString.html">WString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a45dbcefef2dfd32ec99b6d7cc3c3ad34">identity</a> (const std::string &amp;provider) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user's identity. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a373651abdd3454d64dc634bbae53ceec"></a><!-- doxytag: member="Wt::Auth::User::addIdentity" ref="a373651abdd3454d64dc634bbae53ceec" args="(const std::string &amp;provider, const WString &amp;identity)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a373651abdd3454d64dc634bbae53ceec">addIdentity</a> (const std::string &amp;provider, const <a class="el" href="classWt_1_1WString.html">WString</a> &amp;identity)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds (or modifies) a user's identity. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#aac2560c6dc061f48f57ca21064775937">setPassword</a> (const <a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> &amp;password) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a password.  <a href="#aac2560c6dc061f48f57ca21064775937"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a80dd59916eb3a6b4d76c088e6411cf5a">password</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the password.  <a href="#a80dd59916eb3a6b4d76c088e6411cf5a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a2acef28e6abc6cf751848007bc3ce5af">setEmail</a> (const std::string &amp;address) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the email address.  <a href="#a2acef28e6abc6cf751848007bc3ce5af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a0685d2c906fb07f1ccc8f8ffee00a5fb">email</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the email address.  <a href="#a0685d2c906fb07f1ccc8f8ffee00a5fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a968a002d1d51ae43eddc8bda692e7742">setUnverifiedEmail</a> (const std::string &amp;address) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the unverified email address.  <a href="#a968a002d1d51ae43eddc8bda692e7742"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a2fb5b97b81456622f94371e8404d914c">unverifiedEmail</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unverified email address.  <a href="#a2fb5b97b81456622f94371e8404d914c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a25cc981dabd643012eaa9e18bf6d4d57">status</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the account status.  <a href="#a25cc981dabd643012eaa9e18bf6d4d57"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a7c60b01acabbeefce47c1f39bb125574">emailToken</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the email token.  <a href="#a7c60b01acabbeefce47c1f39bb125574"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">EmailTokenRole</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a6f1f1c0992e9d774e76644833d279baf">emailTokenRole</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the email token role.  <a href="#a6f1f1c0992e9d774e76644833d279baf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a7ca9f5de82c1fad131d727f03f5046e7">setEmailToken</a> (const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &amp;token, <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">EmailTokenRole</a> role) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets an email token.  <a href="#a7ca9f5de82c1fad131d727f03f5046e7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#afe130b1e7c7260db015a4a475420d6dd">clearEmailToken</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the email token.  <a href="#afe130b1e7c7260db015a4a475420d6dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a7f93bf5899cd863ddd0745ee98fc191d">addAuthToken</a> (const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &amp;token) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an authentication token.  <a href="#a7f93bf5899cd863ddd0745ee98fc191d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#abfafabb7bbae1260b5e3629966640015">removeAuthToken</a> (const std::string &amp;hash) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an authentication token.  <a href="#abfafabb7bbae1260b5e3629966640015"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a651b47a5d61224168b5daf1ef1ab0a9b">setAuthenticated</a> (bool success) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Logs the result of an authentication attempt.  <a href="#a651b47a5d61224168b5daf1ef1ab0a9b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a145fd658578b6442926293cec0b94208">failedLoginAttempts</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of consecutive unsuccessful login attempts.  <a href="#a145fd658578b6442926293cec0b94208"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1WDateTime.html">WDateTime</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#ab4c257007e08a93d0c1ad17daeacb2e1">lastLoginAttempt</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last login attempt.  <a href="#ab4c257007e08a93d0c1ad17daeacb2e1"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A user. </p>
<p>This class represents a user. It is a value class that stores only the user id and a reference to an <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database.">AbstractUserDatabase</a> to access its properties.</p>
<p>An object can point to a valid user, or be invalid. Invalid users are typically used as return value for database queries which did not match with an existing user.</p>
<p>Not all methods are valid or applicable to your authentication system. See <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database.">AbstractUserDatabase</a> for a discussion.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database.">AbstractUserDatabase</a> </dd></dl>
</div><hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a9156dfab4821e49aa7e109f3f1a2674b"></a><!-- doxytag: member="Wt::Auth::User::EmailTokenRole" ref="a9156dfab4821e49aa7e109f3f1a2674b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">Wt::Auth::User::EmailTokenRole</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumeration for an email token stored for the user. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a9156dfab4821e49aa7e109f3f1a2674ba17d35cc3b85d25c5d3fbfccc8068752b"></a><!-- doxytag: member="VerifyEmail" ref="a9156dfab4821e49aa7e109f3f1a2674ba17d35cc3b85d25c5d3fbfccc8068752b" args="" -->VerifyEmail</em>&nbsp;</td><td>
<p><a class="el" href="classWt_1_1Auth_1_1Token.html" title="An authentication token hash.">Token</a> is used to verify his email address. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9156dfab4821e49aa7e109f3f1a2674ba0261f8dbe3766d885a2be9d7619c85d0"></a><!-- doxytag: member="LostPassword" ref="a9156dfab4821e49aa7e109f3f1a2674ba0261f8dbe3766d885a2be9d7619c85d0" args="" -->LostPassword</em>&nbsp;</td><td>
<p><a class="el" href="classWt_1_1Auth_1_1Token.html" title="An authentication token hash.">Token</a> is used to allow the user to enter a new password. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="ac8a61657a320eef6ae6e2c394bdd4437"></a><!-- doxytag: member="Wt::Auth::User::Status" ref="ac8a61657a320eef6ae6e2c394bdd4437" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">Wt::Auth::User::Status</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumeration for a user's account status. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a25cc981dabd643012eaa9e18bf6d4d57" title="Returns the account status.">status()</a> </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ac8a61657a320eef6ae6e2c394bdd4437a35904fc75f2d7a6dd52f952487603a1d"></a><!-- doxytag: member="Disabled" ref="ac8a61657a320eef6ae6e2c394bdd4437a35904fc75f2d7a6dd52f952487603a1d" args="" -->Disabled</em>&nbsp;</td><td>
<p>Successfully identified but not allowed to log in. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac8a61657a320eef6ae6e2c394bdd4437a4bdc87727a5f54db977b9e192f05e689"></a><!-- doxytag: member="Normal" ref="ac8a61657a320eef6ae6e2c394bdd4437a4bdc87727a5f54db977b9e192f05e689" args="" -->Normal</em>&nbsp;</td><td>
<p>Normal status. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2319756742238e5f4809d754e2fc735b"></a><!-- doxytag: member="Wt::Auth::User::User" ref="a2319756742238e5f4809d754e2fc735b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Wt::Auth::User::User </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default constructor. </p>
<p>Creates an invalid user.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a933b6fc5683f4ee3f2c414bcb2440202" title="Returns whether the user is valid.">isValid()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2bd7e605d6bac3210076a260fab24d4d"></a><!-- doxytag: member="Wt::Auth::User::User" ref="a2bd7e605d6bac3210076a260fab24d4d" args="(const std::string &amp;id, const AbstractUserDatabase &amp;database)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Wt::Auth::User::User </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> &amp;&#160;</td>
          <td class="paramname"><em>database</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>Creates a user with id <code>id</code>, and whose information is stored in the <code>database</code>. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a7f93bf5899cd863ddd0745ee98fc191d"></a><!-- doxytag: member="Wt::Auth::User::addAuthToken" ref="a7f93bf5899cd863ddd0745ee98fc191d" args="(const Token &amp;token) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::User::addAuthToken </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &amp;&#160;</td>
          <td class="paramname"><em>token</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds an authentication token. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#aa9e6675aad111e35b2725ced17208211" title="Adds an authentication token to a user.">AbstractUserDatabase::addAuthToken()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afe130b1e7c7260db015a4a475420d6dd"></a><!-- doxytag: member="Wt::Auth::User::clearEmailToken" ref="afe130b1e7c7260db015a4a475420d6dd" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::User::clearEmailToken </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clears the email token. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a7ca9f5de82c1fad131d727f03f5046e7" title="Sets an email token.">setEmailToken()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aafdb7f7f04974280d0c2b3e30528a1f8"></a><!-- doxytag: member="Wt::Auth::User::database" ref="aafdb7f7f04974280d0c2b3e30528a1f8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a>* Wt::Auth::User::database </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the user database. </p>
<p>This returns the user database passed in the constructor, or 0 if the user is invalid, and was constructed using the default constructor. </p>

</div>
</div>
<a class="anchor" id="a0685d2c906fb07f1ccc8f8ffee00a5fb"></a><!-- doxytag: member="Wt::Auth::User::email" ref="a0685d2c906fb07f1ccc8f8ffee00a5fb" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string Wt::Auth::User::email </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the email address. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a15fa807c21115be032626a4a4b661015" title="Returns a user&#39;s email address.">AbstractUserDatabase::email()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a7c60b01acabbeefce47c1f39bb125574"></a><!-- doxytag: member="Wt::Auth::User::emailToken" ref="a7c60b01acabbeefce47c1f39bb125574" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> Wt::Auth::User::emailToken </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the email token. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#af97442ab53528b3609a9e102bf4ec149" title="Returns an email token.">AbstractUserDatabase::emailToken()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a6f1f1c0992e9d774e76644833d279baf"></a><!-- doxytag: member="Wt::Auth::User::emailTokenRole" ref="a6f1f1c0992e9d774e76644833d279baf" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">User::EmailTokenRole</a> Wt::Auth::User::emailTokenRole </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the email token role. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#ad92251a0fe300577a4227f3ffbe01349" title="Returns the role of the current email token.">AbstractUserDatabase::emailTokenRole()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a145fd658578b6442926293cec0b94208"></a><!-- doxytag: member="Wt::Auth::User::failedLoginAttempts" ref="a145fd658578b6442926293cec0b94208" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Wt::Auth::User::failedLoginAttempts </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of consecutive unsuccessful login attempts. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a651b47a5d61224168b5daf1ef1ab0a9b" title="Logs the result of an authentication attempt.">setAuthenticated()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="acdacd8abd3702d9a8e76c75b64c90c9d"></a><!-- doxytag: member="Wt::Auth::User::id" ref="acdacd8abd3702d9a8e76c75b64c90c9d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::string&amp; Wt::Auth::User::id </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the user id. </p>
<p>This returns the id that uniquely identifies the user, and acts as a "primary key" to obtain other information for the user in the database.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database.">AbstractUserDatabase</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a933b6fc5683f4ee3f2c414bcb2440202"></a><!-- doxytag: member="Wt::Auth::User::isValid" ref="a933b6fc5683f4ee3f2c414bcb2440202" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::User::isValid </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns whether the user is valid. </p>
<p>A invalid user is a sentinel value returned by methods that query the database but could not identify a matching user. </p>

</div>
</div>
<a class="anchor" id="ab4c257007e08a93d0c1ad17daeacb2e1"></a><!-- doxytag: member="Wt::Auth::User::lastLoginAttempt" ref="ab4c257007e08a93d0c1ad17daeacb2e1" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1WDateTime.html">WDateTime</a> Wt::Auth::User::lastLoginAttempt </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the last login attempt. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a651b47a5d61224168b5daf1ef1ab0a9b" title="Logs the result of an authentication attempt.">setAuthenticated()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8628e4b9a6e39a44349ab7a773dc0e6c"></a><!-- doxytag: member="Wt::Auth::User::operator!=" ref="a8628e4b9a6e39a44349ab7a773dc0e6c" args="(const User &amp;other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::User::operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Comparison operator. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>operator== </dd></dl>

</div>
</div>
<a class="anchor" id="ab1387f9ab708ef08a5228cf60cb0428c"></a><!-- doxytag: member="Wt::Auth::User::operator==" ref="ab1387f9ab708ef08a5228cf60cb0428c" args="(const User &amp;other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::User::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Comparison operator. </p>
<p>Two users are equal if they have the same identity and the same database. </p>

</div>
</div>
<a class="anchor" id="a80dd59916eb3a6b4d76c088e6411cf5a"></a><!-- doxytag: member="Wt::Auth::User::password" ref="a80dd59916eb3a6b4d76c088e6411cf5a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> Wt::Auth::User::password </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the password. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#abdea1a684e09897d33e2d6ed4ce27ff8" title="Returns a user password.">AbstractUserDatabase::password()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="abfafabb7bbae1260b5e3629966640015"></a><!-- doxytag: member="Wt::Auth::User::removeAuthToken" ref="abfafabb7bbae1260b5e3629966640015" args="(const std::string &amp;hash) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::User::removeAuthToken </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>hash</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes an authentication token. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#acfe2c37b3ecaf468cb9663a2cd83a980" title="Deletes an authentication token.">AbstractUserDatabase::removeAuthToken()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a651b47a5d61224168b5daf1ef1ab0a9b"></a><!-- doxytag: member="Wt::Auth::User::setAuthenticated" ref="a651b47a5d61224168b5daf1ef1ab0a9b" args="(bool success) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::User::setAuthenticated </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>success</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Logs the result of an authentication attempt. </p>
<p>This changes the number of failed login attempts, and stores the current date as the last login attempt time.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a145fd658578b6442926293cec0b94208" title="Returns the number of consecutive unsuccessful login attempts.">failedLoginAttempts()</a>, <a class="el" href="classWt_1_1Auth_1_1User.html#ab4c257007e08a93d0c1ad17daeacb2e1" title="Returns the last login attempt.">lastLoginAttempt()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2acef28e6abc6cf751848007bc3ce5af"></a><!-- doxytag: member="Wt::Auth::User::setEmail" ref="a2acef28e6abc6cf751848007bc3ce5af" args="(const std::string &amp;address) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::User::setEmail </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>address</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the email address. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a9f24e4a83a20e24dd8ac64558db51559" title="Sets a user&#39;s email address.">AbstractUserDatabase::setEmail()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a7ca9f5de82c1fad131d727f03f5046e7"></a><!-- doxytag: member="Wt::Auth::User::setEmailToken" ref="a7ca9f5de82c1fad131d727f03f5046e7" args="(const Token &amp;token, EmailTokenRole role) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::User::setEmailToken </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &amp;&#160;</td>
          <td class="paramname"><em>token</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">EmailTokenRole</a>&#160;</td>
          <td class="paramname"><em>role</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets an email token. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a3f12058159d7e2ea45ebc2e72b568942" title="Sets a new email token for a user.">AbstractUserDatabase::setEmailToken()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aac2560c6dc061f48f57ca21064775937"></a><!-- doxytag: member="Wt::Auth::User::setPassword" ref="aac2560c6dc061f48f57ca21064775937" args="(const PasswordHash &amp;password) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::User::setPassword </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> &amp;&#160;</td>
          <td class="paramname"><em>password</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets a password. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a489310f977a7c22c7b29ec89fba297cc" title="Sets a new user password.">AbstractUserDatabase::setPassword()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a968a002d1d51ae43eddc8bda692e7742"></a><!-- doxytag: member="Wt::Auth::User::setUnverifiedEmail" ref="a968a002d1d51ae43eddc8bda692e7742" args="(const std::string &amp;address) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::User::setUnverifiedEmail </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>address</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the unverified email address. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#aa3709b846d8949b6a411c8494496aa55" title="Sets a user&#39;s unverified email address.">AbstractUserDatabase::setUnverifiedEmail()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a25cc981dabd643012eaa9e18bf6d4d57"></a><!-- doxytag: member="Wt::Auth::User::status" ref="a25cc981dabd643012eaa9e18bf6d4d57" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">User::Status</a> Wt::Auth::User::status </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the account status. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a64fba754661708d4c25219e46c5fe1b6" title="Returns the status for a user.">AbstractUserDatabase::status()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2fb5b97b81456622f94371e8404d914c"></a><!-- doxytag: member="Wt::Auth::User::unverifiedEmail" ref="a2fb5b97b81456622f94371e8404d914c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string Wt::Auth::User::unverifiedEmail </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the unverified email address. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a041239ea5a0ef0a0907c045abf29f687" title="Returns a user&#39;s unverified email address.">AbstractUserDatabase::unverifiedEmail()</a> </dd></dl>

</div>
</div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"><address style="text-align: right; margin: 3px"><small>
Generated on Thu Nov 1 2012 for <a href="http://www.webtoolkit.eu/wt">the
C++ Web Toolkit (Wt)</a> by&nbsp;<a
href="http://www.doxygen.org/index.html"><img src="doxygen.png"
alt="doxygen" border="0" style="vertical-align: middle; display:
inline-block; height: 2em"></a> 1.7.5.1</small></address>
</body>
</html>