Sophie

Sophie

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

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::RegistrationModel 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_1RegistrationModel.html">RegistrationModel</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> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
  <div class="headertitle">
<div class="title">Wt::Auth::RegistrationModel 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::RegistrationModel" --><!-- doxytag: inherits="Wt::Auth::FormBaseModel" -->
<p>Model for implementing a registration view.  
 <a href="classWt_1_1Auth_1_1RegistrationModel.html#details">More...</a></p>

<p><code>#include &lt;Wt/Auth/RegistrationModel&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Wt::Auth::RegistrationModel:</div>
<div class="dyncontent">
<div class="center"><img src="classWt_1_1Auth_1_1RegistrationModel__inherit__graph.png" border="0" usemap="#Wt_1_1Auth_1_1RegistrationModel_inherit__map" alt="Inheritance graph"/></div>
<map name="Wt_1_1Auth_1_1RegistrationModel_inherit__map" id="Wt_1_1Auth_1_1RegistrationModel_inherit__map">
<area shape="rect" href="classWt_1_1Auth_1_1FormBaseModel.html" title="A base model class for authentication&#45;related forms." alt="" coords="9,155,185,181"/><area shape="rect" href="classWt_1_1WFormModel.html" title="A basic model class for forms." alt="" coords="36,80,159,107"/><area shape="rect" href="classWt_1_1WObject.html" title="A base class for objects that participate in the signal/slot system." alt="" coords="49,5,145,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classWt_1_1Auth_1_1RegistrationModel-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_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652c">EmailPolicy</a> { <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652cadaa8dea4398f55fdeb340576ab81d8b2">EmailDisabled</a>, 
<a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652ca449ee97f19c99c109e39d93c801c88eb">EmailOptional</a>, 
<a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652cac27a175a882c58fb4bf877c1f436bcbd">EmailMandatory</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for an email policy.  <a href="classWt_1_1Auth_1_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652c">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_1RegistrationModel.html#ac5ad7276c230c84c7853ad17dfea2513">IdentityConfirmationMethod</a> { <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ac5ad7276c230c84c7853ad17dfea2513ab67315b0536e106872f6cc74e9d64b64">ConfirmWithPassword</a>, 
<a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ac5ad7276c230c84c7853ad17dfea2513a3456d456de1e538b75cb30ea91bfd218">ConfirmWithEmail</a>, 
<a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ac5ad7276c230c84c7853ad17dfea2513ae7bbd991fe8a7903611c2868d15e088f">ConfirmationNotPossible</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for confirming to be an existing user.  <a href="classWt_1_1Auth_1_1RegistrationModel.html#ac5ad7276c230c84c7853ad17dfea2513">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_1RegistrationModel.html#aba68d8fc7d06e35e157b735ad4463d27">RegistrationModel</a> (const <a class="el" href="classWt_1_1Auth_1_1AuthService.html">AuthService</a> &amp;baseAuth, <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> &amp;users, <a class="el" href="classWt_1_1Auth_1_1Login.html">Login</a> &amp;login, <a class="el" href="classWt_1_1WObject.html">WObject</a> *parent=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#aba68d8fc7d06e35e157b735ad4463d27"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a451385f9d3f2ade3b90c71696f0cef19">reset</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the model.  <a href="#a451385f9d3f2ade3b90c71696f0cef19"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99bfd95211b3d072d44cd56f9e7a409c"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::login" ref="a99bfd95211b3d072d44cd56f9e7a409c" args="()" -->
<a class="el" href="classWt_1_1Auth_1_1Login.html">Login</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a99bfd95211b3d072d44cd56f9e7a409c">login</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the login object. <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_1RegistrationModel.html#a594097839ba087e8dbab4eaee6900bdd">setMinLoginNameLength</a> (int chars)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures a minimum length for a login name.  <a href="#a594097839ba087e8dbab4eaee6900bdd"></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_1RegistrationModel.html#a9911882eec208eed6ef189c0eec75c99">minLoginNameLength</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the minimum length for a login name.  <a href="#a9911882eec208eed6ef189c0eec75c99"></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_1RegistrationModel.html#ad880d6c99a03b1521edc6f49e516ac6a">setEmailPolicy</a> (<a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652c">EmailPolicy</a> policy)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures whether an email address needs to be entered.  <a href="#ad880d6c99a03b1521edc6f49e516ac6a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652c">EmailPolicy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#afcdd42da9f61ef053705252e374c5193">emailPolicy</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the email policy.  <a href="#afcdd42da9f61ef053705252e374c5193"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ab8f9d671af20b15d4adc1953a306f2f2">registerIdentified</a> (const <a class="el" href="classWt_1_1Auth_1_1Identity.html">Identity</a> &amp;identity)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a user authenticated by an identity provider.  <a href="#ab8f9d671af20b15d4adc1953a306f2f2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1User.html">User</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a0d512d40e52c43d81ea0595ab5c152e3">existingUser</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the existing user that needs to be confirmed.  <a href="#a0d512d40e52c43d81ea0595ab5c152e3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ac5ad7276c230c84c7853ad17dfea2513">IdentityConfirmationMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a92eb0ad1e637087c2ee4512a8b4fa231">confirmIsExistingUser</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method to be used to confirm to be an existing user.  <a href="#a92eb0ad1e637087c2ee4512a8b4fa231"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#abc0dea3c2a3d5a5e02501e6486aac110">existingUserConfirmed</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Confirms that the user is indeed an existing user.  <a href="#abc0dea3c2a3d5a5e02501e6486aac110"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <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_1RegistrationModel.html#a5f9eb21f7f808f56bbb0aa4eeeb9aca2">validateLoginName</a> (const <a class="el" href="classWt_1_1WString.html">WString</a> &amp;userName) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates the login name.  <a href="#a5f9eb21f7f808f56bbb0aa4eeeb9aca2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a29cbbf6d959c08bcf07ca2a7121c138e">checkUserExists</a> (const <a class="el" href="classWt_1_1WString.html">WString</a> &amp;userName)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies that a user with that name does not yet exist.  <a href="#a29cbbf6d959c08bcf07ca2a7121c138e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b6ad0412e0e259c1700e3759028e87e"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::doRegister" ref="a2b6ad0412e0e259c1700e3759028e87e" args="()" -->
virtual <a class="el" href="classWt_1_1Auth_1_1User.html">User</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a2b6ad0412e0e259c1700e3759028e87e">doRegister</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the registration process. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#aaa45fc350dbc09cfef003fa9e00bdba1">isVisible</a> (<a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a> field) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether a field is visible.  <a href="#aaa45fc350dbc09cfef003fa9e00bdba1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a86081bb7ff348df69bac0400678c05bb">isReadOnly</a> (<a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a> field) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether a field is read only.  <a href="#a86081bb7ff348df69bac0400678c05bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ab2eb27092037d2bf2119093aacfb2a1d">validateField</a> (<a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a> field)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates a field.  <a href="#ab2eb27092037d2bf2119093aacfb2a1d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ac11dbc8da1fc0ba3156360a81ffb0d7f">isConfirmUserButtonVisible</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether an existing user needs to be confirmed.  <a href="#ac11dbc8da1fc0ba3156360a81ffb0d7f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a9571dc97ae05180f489637b7cb5bdf5c">isFederatedLoginVisible</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether federated login options can be shown.  <a href="#a9571dc97ae05180f489637b7cb5bdf5c"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6242bfffa5a738d1fe066d90157fce87"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::ChoosePasswordField" ref="a6242bfffa5a738d1fe066d90157fce87" args="" -->
static const <a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a6242bfffa5a738d1fe066d90157fce87">ChoosePasswordField</a> = &quot;choose-password&quot;</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Choose Password field. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f7b892cb00e99d84e884ba950c18f3f"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::RepeatPasswordField" ref="a3f7b892cb00e99d84e884ba950c18f3f" args="" -->
static const <a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a3f7b892cb00e99d84e884ba950c18f3f">RepeatPasswordField</a> = &quot;repeat-password&quot;</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repeat password field. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3efaf66042493d53a84ecb095ad73d5c"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::EmailField" ref="a3efaf66042493d53a84ecb095ad73d5c" args="" -->
static const <a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a3efaf66042493d53a84ecb095ad73d5c">EmailField</a> = &quot;email&quot;</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Email field (if login name is not email) <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Model for implementing a registration view. </p>
<p>This model implements the logic for the registration of a new user. It can deal with traditional username/password registration, or registration of pre-identified users using federated login.</p>
<p>The model exposes four fields:</p>
<ul>
<li>LoginNameField: the login name (used as an identity for the <a class="el" href="classWt_1_1Auth_1_1Identity.html#a1d680fd0dbf7a12684a511d74081eb06" title="The login name identity.">Identity::LoginName</a> provider) -- this can be an email if the <a class="el" href="classWt_1_1Auth_1_1AuthService.html" title="Basic authentication service.">AuthService</a> is configured to use email addresses as identity</li>
<li>ChoosePasswordField: the password</li>
<li>RepeatPasswordField: the password (repeated)</li>
<li>EmailField: if an email address is to be asked (and is not used as identity).</li>
</ul>
<p>The largest complexity is in the handling of third party identity providers, which is initiated with a call to <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ab8f9d671af20b15d4adc1953a306f2f2" title="Register a user authenticated by an identity provider.">registerIdentified()</a>.</p>
<p>When a user is re-identified with the same identity, then the model may require that the (original) user confirms this new identity. The model indicates that this button should be made visible with <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ac11dbc8da1fc0ba3156360a81ffb0d7f" title="Returns whether an existing user needs to be confirmed.">isConfirmUserButtonVisible()</a>, the action to take is determined by <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a92eb0ad1e637087c2ee4512a8b4fa231" title="Returns the method to be used to confirm to be an existing user.">confirmIsExistingUser()</a>, and <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#abc0dea3c2a3d5a5e02501e6486aac110" title="Confirms that the user is indeed an existing user.">existingUserConfirmed()</a> ends this process by merging the new identity into the existing user.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1RegistrationWidget.html" title="A registration widget.">RegistrationWidget</a> </dd></dl>
</div><hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a44510ac167f9a71ef44589c88b02652c"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::EmailPolicy" ref="a44510ac167f9a71ef44589c88b02652c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652c">Wt::Auth::RegistrationModel::EmailPolicy</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumeration for an email policy. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a44510ac167f9a71ef44589c88b02652cadaa8dea4398f55fdeb340576ab81d8b2"></a><!-- doxytag: member="EmailDisabled" ref="a44510ac167f9a71ef44589c88b02652cadaa8dea4398f55fdeb340576ab81d8b2" args="" -->EmailDisabled</em>&nbsp;</td><td>
<p>The email address is not asked for. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a44510ac167f9a71ef44589c88b02652ca449ee97f19c99c109e39d93c801c88eb"></a><!-- doxytag: member="EmailOptional" ref="a44510ac167f9a71ef44589c88b02652ca449ee97f19c99c109e39d93c801c88eb" args="" -->EmailOptional</em>&nbsp;</td><td>
<p>A user may optionally provide an email address. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a44510ac167f9a71ef44589c88b02652cac27a175a882c58fb4bf877c1f436bcbd"></a><!-- doxytag: member="EmailMandatory" ref="a44510ac167f9a71ef44589c88b02652cac27a175a882c58fb4bf877c1f436bcbd" args="" -->EmailMandatory</em>&nbsp;</td><td>
<p>A user must provide an email address. </p>
</td></tr>
</table>
</dd>
</dl>

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

<p>Method for confirming to be an existing 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="ac5ad7276c230c84c7853ad17dfea2513ab67315b0536e106872f6cc74e9d64b64"></a><!-- doxytag: member="ConfirmWithPassword" ref="ac5ad7276c230c84c7853ad17dfea2513ab67315b0536e106872f6cc74e9d64b64" args="" -->ConfirmWithPassword</em>&nbsp;</td><td>
<p>Confirm using a password prompt. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac5ad7276c230c84c7853ad17dfea2513a3456d456de1e538b75cb30ea91bfd218"></a><!-- doxytag: member="ConfirmWithEmail" ref="ac5ad7276c230c84c7853ad17dfea2513a3456d456de1e538b75cb30ea91bfd218" args="" -->ConfirmWithEmail</em>&nbsp;</td><td>
<p>Confirm by using an email procedure. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac5ad7276c230c84c7853ad17dfea2513ae7bbd991fe8a7903611c2868d15e088f"></a><!-- doxytag: member="ConfirmationNotPossible" ref="ac5ad7276c230c84c7853ad17dfea2513ae7bbd991fe8a7903611c2868d15e088f" args="" -->ConfirmationNotPossible</em>&nbsp;</td><td>
<p>Confirmation is not possible. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aba68d8fc7d06e35e157b735ad4463d27"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::RegistrationModel" ref="aba68d8fc7d06e35e157b735ad4463d27" args="(const AuthService &amp;baseAuth, AbstractUserDatabase &amp;users, Login &amp;login, WObject *parent=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Wt::Auth::RegistrationModel::RegistrationModel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1AuthService.html">AuthService</a> &amp;&#160;</td>
          <td class="paramname"><em>baseAuth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> &amp;&#160;</td>
          <td class="paramname"><em>users</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classWt_1_1Auth_1_1Login.html">Login</a> &amp;&#160;</td>
          <td class="paramname"><em>login</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classWt_1_1WObject.html">WObject</a> *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>Creates a new registration model, using a basic authentication service and user database.</p>
<p>The <code>login</code> object is used to indicate that an existing user was re-identified, and thus the registration process may be aborted. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a29cbbf6d959c08bcf07ca2a7121c138e"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::checkUserExists" ref="a29cbbf6d959c08bcf07ca2a7121c138e" args="(const WString &amp;userName)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::RegistrationModel::checkUserExists </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1WString.html">WString</a> &amp;&#160;</td>
          <td class="paramname"><em>userName</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Verifies that a user with that name does not yet exist. </p>
<p>If a user with that name already exists, it may in fact be the same user that is trying to register again (perhaps using a different identification method). If possible, we allow the user to confirm his identity. </p>

</div>
</div>
<a class="anchor" id="a92eb0ad1e637087c2ee4512a8b4fa231"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::confirmIsExistingUser" ref="a92eb0ad1e637087c2ee4512a8b4fa231" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ac5ad7276c230c84c7853ad17dfea2513">RegistrationModel::IdentityConfirmationMethod</a> Wt::Auth::RegistrationModel::confirmIsExistingUser </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the method to be used to confirm to be an existing user. </p>
<p>When the ConfirmExisting field is visible, this returns an appropriate method to use to let the user confirm that he is indeed the identified existing user.</p>
<p>The outcome of this method (if it is an online method, like a password prompt), if successful, should be indicated using <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#abc0dea3c2a3d5a5e02501e6486aac110" title="Confirms that the user is indeed an existing user.">existingUserConfirmed()</a>.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#abc0dea3c2a3d5a5e02501e6486aac110" title="Confirms that the user is indeed an existing user.">existingUserConfirmed()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="afcdd42da9f61ef053705252e374c5193"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::emailPolicy" ref="afcdd42da9f61ef053705252e374c5193" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652c">EmailPolicy</a> Wt::Auth::RegistrationModel::emailPolicy </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the email policy. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ad880d6c99a03b1521edc6f49e516ac6a" title="Configures whether an email address needs to be entered.">setEmailPolicy()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a0d512d40e52c43d81ea0595ab5c152e3"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::existingUser" ref="a0d512d40e52c43d81ea0595ab5c152e3" 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">User</a> Wt::Auth::RegistrationModel::existingUser </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the existing user that needs to be confirmed. </p>
<p>When a user wishes to register with an identity that corresponds to an existing user, he may be allowd to confirm that he is in fact this existing user.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a92eb0ad1e637087c2ee4512a8b4fa231" title="Returns the method to be used to confirm to be an existing user.">confirmIsExistingUser()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="abc0dea3c2a3d5a5e02501e6486aac110"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::existingUserConfirmed" ref="abc0dea3c2a3d5a5e02501e6486aac110" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::RegistrationModel::existingUserConfirmed </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Confirms that the user is indeed an existing user. </p>
<p>The new identity is added to this existing user (if applicable), and the user is logged in. </p>

</div>
</div>
<a class="anchor" id="ac11dbc8da1fc0ba3156360a81ffb0d7f"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::isConfirmUserButtonVisible" ref="ac11dbc8da1fc0ba3156360a81ffb0d7f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::RegistrationModel::isConfirmUserButtonVisible </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns whether an existing user needs to be confirmed. </p>
<p>This returns whether the user is being identified as an existing user and he can confirm that he is in fact the same user. </p>

</div>
</div>
<a class="anchor" id="a9571dc97ae05180f489637b7cb5bdf5c"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::isFederatedLoginVisible" ref="a9571dc97ae05180f489637b7cb5bdf5c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::RegistrationModel::isFederatedLoginVisible </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns whether federated login options can be shown. </p>
<p>This returns whether fields for federated login (such as OAuth) should be shown. These are typically buttons corresponding to identity providers.</p>
<p>The result of a federated authentication procedure should be indicated to <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#ab8f9d671af20b15d4adc1953a306f2f2" title="Register a user authenticated by an identity provider.">registerIdentified()</a>. </p>

</div>
</div>
<a class="anchor" id="a86081bb7ff348df69bac0400678c05bb"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::isReadOnly" ref="a86081bb7ff348df69bac0400678c05bb" args="(Field field) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::RegistrationModel::isReadOnly </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td>
          <td class="paramname"><em>field</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns whether a field is read only. </p>
<p>The default implementation returns the value set by <a class="el" href="classWt_1_1WFormModel.html#adfa51b8bcebd7a75db93b8e1293114e7" title="Sets whether a field is read-only.">setReadOnly()</a> </p>

<p>Reimplemented from <a class="el" href="classWt_1_1WFormModel.html#a47183becef5033bd62dbab9d563b17fd">Wt::WFormModel</a>.</p>

</div>
</div>
<a class="anchor" id="aaa45fc350dbc09cfef003fa9e00bdba1"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::isVisible" ref="aaa45fc350dbc09cfef003fa9e00bdba1" args="(Field field) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::RegistrationModel::isVisible </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td>
          <td class="paramname"><em>field</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns whether a field is visible. </p>
<p>In some cases not all fields of the model need to be shown. This may depend on values input for certain fields, and thus change dynamically. You may specialize this method to indicate that a certain field should be invisible.</p>
<p>The default implementation returns the value set by <a class="el" href="classWt_1_1WFormModel.html#aa3bea05b625310f549eb6ec736a2701c" title="Sets whether a field is visible.">setVisible()</a>. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1WFormModel.html#ac15d7ceee410635121a6338ca6b9df93">Wt::WFormModel</a>.</p>

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

<p>Returns the minimum length for a login name. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a594097839ba087e8dbab4eaee6900bdd" title="Configures a minimum length for a login name.">setMinLoginNameLength()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab8f9d671af20b15d4adc1953a306f2f2"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::registerIdentified" ref="ab8f9d671af20b15d4adc1953a306f2f2" args="(const Identity &amp;identity)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::RegistrationModel::registerIdentified </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1Identity.html">Identity</a> &amp;&#160;</td>
          <td class="paramname"><em>identity</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Register a user authenticated by an identity provider. </p>
<p>Using a 3rd party authentication service such as OAuth, a user may be identified which is not yet registered with the web application.</p>
<p>Then, you may still need to allow the user to complete registration, but because the user already is identified and authenticated, this simplifies the registration form, since fields related to authentication can be dropped.</p>
<p>Returns <code>true</code> if the given identity was already registered, and has been logged in. </p>

</div>
</div>
<a class="anchor" id="a451385f9d3f2ade3b90c71696f0cef19"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::reset" ref="a451385f9d3f2ade3b90c71696f0cef19" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::RegistrationModel::reset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resets the model. </p>
<p>This resets the model to initial values, clearing any entered information (login name, password, pre-identified identity). </p>

<p>Reimplemented from <a class="el" href="classWt_1_1WFormModel.html#a32f3c9ff0302d54462939b71029d2c54">Wt::WFormModel</a>.</p>

</div>
</div>
<a class="anchor" id="ad880d6c99a03b1521edc6f49e516ac6a"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::setEmailPolicy" ref="ad880d6c99a03b1521edc6f49e516ac6a" args="(EmailPolicy policy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::RegistrationModel::setEmailPolicy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a44510ac167f9a71ef44589c88b02652c">EmailPolicy</a>&#160;</td>
          <td class="paramname"><em>policy</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Configures whether an email address needs to be entered. </p>
<p>You may specify whether you want the user to enter an email address.</p>
<p>This has no effect when the IdentityPolicy is EmailAddressIdentity.</p>
<p>The default policy is:</p>
<ul>
<li>EmailOptional when email address verification is enabled</li>
<li>EmailDisabled otherwise </li>
</ul>

</div>
</div>
<a class="anchor" id="a594097839ba087e8dbab4eaee6900bdd"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::setMinLoginNameLength" ref="a594097839ba087e8dbab4eaee6900bdd" args="(int chars)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::RegistrationModel::setMinLoginNameLength </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>chars</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Configures a minimum length for a login name. </p>
<p>The default value is 4. </p>

</div>
</div>
<a class="anchor" id="ab2eb27092037d2bf2119093aacfb2a1d"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::validateField" ref="ab2eb27092037d2bf2119093aacfb2a1d" args="(Field field)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::RegistrationModel::validateField </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td>
          <td class="paramname"><em>field</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Validates a field. </p>
<p>The default implementation uses the validator configured for the field to validate the field contents, or if no validator has been configured assumes that the field is valid.</p>
<p>You will typically customize this method for more complex validation cases.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1WFormModel.html#ab616d3fc40e0f90f9221500f72421cd0" title="Validates the current input.">validate()</a>, validationResult() </dd></dl>

<p>Reimplemented from <a class="el" href="classWt_1_1WFormModel.html#aafc50707e6190e1f6b446cac3a187b98">Wt::WFormModel</a>.</p>

</div>
</div>
<a class="anchor" id="a5f9eb21f7f808f56bbb0aa4eeeb9aca2"></a><!-- doxytag: member="Wt::Auth::RegistrationModel::validateLoginName" ref="a5f9eb21f7f808f56bbb0aa4eeeb9aca2" args="(const WString &amp;userName) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1WString.html">WString</a> Wt::Auth::RegistrationModel::validateLoginName </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1WString.html">WString</a> &amp;&#160;</td>
          <td class="paramname"><em>userName</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Validates the login name. </p>
<p>This verifies that the login name is adequate (see also <a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html#a594097839ba087e8dbab4eaee6900bdd" title="Configures a minimum length for a login name.">setMinLoginNameLength()</a>). </p>

</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>