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>ReadMessage</title>
8  </head>
9  <body>
10<h1><CODE><a href="../../../../nn/Overview.html">nn</a>::<a href="../../../../nn/cec/Overview.html">cec</a>::<a href="../../../../nn/cec/CTR/Overview.html">CTR</a>::<a href="../../../../nn/cec/CTR/MessageBox/Overview.html">MessageBox</a>::ReadMessage</CODE> Member Function</h1>
11<h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14<a href="../../../../nn/Result/Overview.html">nn::Result</a> ReadMessage(
15     <a href="../../../../nn/cec/CTR/Message/Overview.html">Message</a> & cecMessage,
16     void * buf,
17     const size_t bufLen,
18     const <a href="../../../../nn/cec/CTR/CecBoxType.html">CecBoxType</a> boxType,
19     const <a href="../../../../nn/cec/CTR/MessageId/Overview.html">MessageId</a> & messageId
20);
21</pre>
22    </div>
23<h2>Parameters</h2>
24    <div class="section">
25      <table class="arguments">
26        <thead>
27          <tr>
28            <td width="15" />
29<th>Name</th>
30<td>Description</td>
31          </tr>
32        </thead>
33        <tr>
34<td>out</td>
35<th>cecMessage</th>
36<td>Object of the <a href="../../../../nn/cec/CTR/Message/Overview.html"><CODE>Message</CODE></a> class where the data should be loaded.</td>
37        </tr>
38        <tr>
39<td>out</td>
40<th>buf</th>
41<td>Buffer that stores a <a href="../../../../nn/cec/CTR/Message/Overview.html"><CODE>Message</CODE></a> binary array.</td>
42        </tr>
43        <tr>
44<td>in</td>
45<th>bufLen</th>
46<td>Buffer size.</td>
47        </tr>
48        <tr>
49<td>in</td>
50<th>boxType</th>
51<td>Inbox and outbox specification.</td>
52        </tr>
53        <tr>
54<td>in</td>
55<th>messageId</th>
56<td>Specifies a <a href="../../../../nn/cec/CTR/MessageId/Overview.html"><CODE>MessageId</CODE></a>.</td>
57        </tr> </table>
58    </div>
59<h2>Return Values</h2>
60<div class="section"><a href="../../../../nn/Result/Overview.html"><CODE>nn::Result</CODE></a><br /> <br />
61      <table class="arguments">
62        <thead>
63          <tr>
64<th>Value</th>
65<td>Description</td>
66          </tr>
67        </thead>
68        <tr>
69<th>Result::IsSuccess</th>
70<td>Succeeded.</td>
71        </tr>
72        <tr>
73<th>ResultStateBusy</th>
74<td>Unable to access because the daemon is busy (<CODE>BUSY</CODE> state). It may succeed if you wait some time before accessing again.</td>
75        </tr>
76        <tr>
77<th>ResultNotAuthorized</th>
78<td>The box has not been opened.</td>
79        </tr>
80        <tr>
81<th>ResultInvalidArgument</th>
82<td>Could not read, because an incorrect argument was specified.</td>
83        </tr>
84        <tr>
85<th>Any other value</th>
86<td>Process failed.</td>
87        </tr>
88      </table> </div>
89<h2>Description</h2>
90    <div class="section">
91<p>Reads a <a href="../../../../nn/cec/CTR/Message/Overview.html">message</a>.</p><!-- write here --><h3>Error Handling</h3>
92The following simplified C++ code provides guidelines for error handling. <br /><code><pre>
93    nn::Result result = ReadMessage();
94    if(result.IsFailure())
95    {
96        if(result == nn::cec::ResultNotAuthorized())
97        {
98            // Box is not open
99            //  --> OpenMessageBox
100        }
101        else if(result == nn::cec::ResultStateBusy() )
102        {
103            // Daemon is BUSY. This state never occurs normally. It might be possible to succeed by retrying.
104        }
105        else if(result == nn::cec::ResultInvalidArgument() )
106        {
107            // Invalid parameter.
108        }
109        else
110        {
111            // Reading failed.
112        }
113        return result;  // Failure
114    }
115    return result;  // Success
116
117    </pre></code></div>
118<h2>Revision History</h2>
119    <div class="section">
120      <dl class="history">
121        <dt>2011/01/19</dt>
122<dd>Added a description of error handling.<br />
123        </dd>
124        <dt>2010/08/16</dt>
125<dd>Initial version.<br />
126        </dd>
127      </dl>
128    </div>
129  <hr><p>CONFIDENTIAL</p></body>
130</html>
131