1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../../../css/manpage.css" type="text/css" />
7<title>Login</title>
8  </head>
9  <body>
10<h1><CODE>nn::friends::CTR::Login</CODE> Function</h1>
11<h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14<a href="../../../nn/Result/Overview.html">Result</a> Login(
15     <a href="../../../nn/os/Event/Overview.html">os::Event</a> * pEvent
16);
17</pre>
18    </div>
19<h2>Arguments</h2>
20    <div class="section">
21      <table class="arguments">
22        <thead>
23          <tr>
24            <td width="15" />
25<th>Name</th>
26<td>Description</td>
27          </tr>
28        </thead>
29        <tr>
30<td>in</td>
31<th>pEvent</th>
32<td>Specifies a pointer to <CODE><a href="../../../nn/os/Event/Overview.html">nn::os::Event</a></CODE>, which signals that asynchronous processing is complete. Initialize this ahead of time using the <a href="../../../nn/os/Event/Initialize.html"><CODE>nn::os::Event::Initialize</CODE></a> function.</td>
33        </tr> </table>
34    </div>
35<h2>Return Values</h2>
36<div class="section">Returns the result of the operation.<br /> <br />
37      <table class="arguments">
38        <thead>
39          <tr>
40<th>Value</th>
41<td>Description</td>
42          </tr>
43        </thead>
44        <tr>
45<th><CODE>ResultSuccess</CODE></th>
46<td>Successfully started asynchronous processing.</td>
47        </tr>
48        <tr>
49<th><CODE>ResultAlreadyDone</CODE></th>
50<td>Successfully started asynchronous processing.</td>
51        </tr>
52        <tr>
53<th><CODE>ResultTemporarilyBusy</CODE></th>
54<td>Failed to start asynchronous processing because the internal state was temporarily busy.</td>
55        </tr>
56        <tr>
57<th><CODE>ResultAcNotConnected</CODE></th>
58<td>An <a href="../../../nn/ac/Overview.html">AC</a> connection request has not been sent.</td>
59        </tr>
60        <tr>
61<th><CODE>ResultInvalidPointer</CODE></th>
62<td>An invalid pointer was passed in as an argument.</td>
63        </tr>
64        <tr>
65<th><CODE>ResultInvalidHandle</CODE></th>
66<td>An invalid <a href="../../../nn/os/Event/Overview.html"><CODE>nn::os::Event</CODE></a> handle was passed in as an argument.</td>
67        </tr>
68        <tr>
69<th><CODE>ResultNotInitialized</CODE></th>
70<td>The friend presence library has not been initialized.</td>
71        </tr>
72        <tr>
73<th>Other</th>
74<td>Some other result may be returned as a result of factors such as the daemon's internal state.</td>
75        </tr>
76      </table> </div>
77<h2>Description</h2>
78    <div class="section">
79<p>Requests a login to the server.</p><p>If this function returns successfully asynchronous processing begins. The event <a href="../../../nn/os/Event/Overview.html"><CODE>nn::os::Event</CODE></a> specified in the argument is signaled when asynchronous processing completes. Call the <a href="../../../nn/friends/CTR/GetLastResponseResult.html"><CODE>nn::friends::CTR::GetLastResponseResult</CODE></a> function to get the result of the asynchronous operation. If this function fails, no asynchronous processing occurs.<br /><br />You must call <CODE>nn::ac::Connect</CODE> or <CODE>nn::ac::ConnectAsync</CODE> before this function to establish a connection with an access point. This function returns a value of <a href="../../../nn/friends/ResultAcNotConnected/Overview.html"><CODE>nn::friends::ResultAcNotConnected</CODE></a> if it is called while a connection has not been established with an access point.<br /><br />When the local host is disconnecting from a server in the background, this function temporarily returns <a href="../../../nn/friends/ResultTemporarilyBusy/Overview.html"><CODE>nn::friends::ResultTemporarilyBusy</CODE></a>. In such cases, this function may succeed if you call it again after waiting a relatively short period of time.<br /><br />This function also succeeds if it is called when the local host is already logged in. In such cases, the asynchronous processing instantly completes successfully.<br /><br />The local host is definitely online when the asynchronous processing succeeds.</p><!-- write here --></div>
80<h2>Revision History</h2>
81    <div class="section">
82      <dl class="history">
83        <dt>2011/03/11</dt>
84<dd>Added <CODE>ConnectAsync</CODE> as a function that sends an AC connection request.<br />Added specific examples of return values.<br />
85        </dd>
86        <dt>2010/08/16</dt>
87<dd>Initial version.<br />
88        </dd>
89      </dl>
90    </div>
91  <hr><p>CONFIDENTIAL</p></body>
92</html>
93