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