ReadMessage.html
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>nn::cec::CTR::MessageBox::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>Arguments</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/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><CODE>ResultSuccess</CODE></th>
70<td>Process succeeded.</td>
71 </tr>
72 <tr>
73<th><CODE>ResultStateBusy</CODE></th>
74<td>Unable to access because the daemon is busy (BUSY state). This may succeed if you wait some time before accessing again.</td>
75 </tr>
76 <tr>
77<th><CODE>ResultNotAuthorized</CODE></th>
78<td>The box has not been opened.</td>
79 </tr>
80 <tr>
81<th><CODE>ResultInvalidArgument</CODE></th>
82<td>Could not read, because an incorrect argument was specified.</td>
83 </tr>
84 <tr>
85<th>A value other than the above.</th>
86<td>Operation 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>
92 The 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 will never normally occur, but 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 </pre></code></div>
117<h2>Revision History</h2>
118 <div class="section">
119 <dl class="history">
120 <dt>2011/01/19</dt>
121<dd>Added description of error handling.<br />
122 </dd>
123 <dt>2010/08/16</dt>
124<dd>Initial version.<br />
125 </dd>
126 </dl>
127 </div>
128 <hr><p>CONFIDENTIAL</p></body>
129</html>
130