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>ReadAsync</title> 8 </head> 9 <body> 10 <h1><CODE><a href="../../../nw/Overview.html">nw</a>::<a href="../../../nw/io/Overview.html">io</a>::<a href="../../../nw/io/IOStream/Overview.html">IOStream</a>::ReadAsync</CODE> Member Function</h1> 11 <h2>Syntax</h2> 12 <div class="section"> 13 <pre class="definition"> 14virtual bool ReadAsync( 15 void* buf, 16 <span>u32</span> length, 17 <a href="../../../nw/io/IOStream/IOStreamCallback.html">IOStreamCallback</a> callback, 18 void* arg 19); 20</pre> 21 </div> 22 <h2>Arguments</h2> 23 <div class="section"> 24 <table class="arguments"> 25 <thead> 26 <tr> 27 <td width="15" /> 28 <th>Name</th> 29 <td>Description</td> 30 </tr> 31 </thead> 32 <tr> 33 <td>out</td> 34 <th>buf</th> 35 <td>Pointer to the buffer where data to be read is stored. The alignment of this data must match the alignment obtained using the <a href="../../../nw/io/IOStream/GetBufferAlign.html"><CODE>GetBufferAlign</CODE></A> function.</td> 36 </tr> 37 <tr> 38 <td>in</td> 39 <th>length</th> 40 <td>Data size to be read. The alignment of this data must match the alignment obtained using the <a href="../../../nw/io/IOStream/GetSizeAlign.html"><CODE>GetSizeAlign</CODE></A> function.</td> 41 </tr> 42 <tr> 43 <td>in</td> 44 <th>callback</th> 45 <td>Registers the callback function to be used when asynchronous processing has finished. If this is <CODE>NULL</CODE>, no callback is invoked.</td> 46 </tr> 47 <tr> 48 <td>in</td> 49 <th>arg</th> 50 <td>Registers parameters returned by the callback function as arguments when asynchronous processing has completed.</td> 51 </tr> </table> 52 </div> 53 <h2>Return Values</h2> 54 <div class="section">Returns <CODE>TRUE</CODE> if the command was executed normally.<br /> Returns <CODE>FALSE</CODE> if the command was not issued.<br /> If the command could not be issued, no callback is invoked. </div> 55 <h2>Description</h2> 56 <div class="section"> 57 <p>Reads data from the stream (asynchronous process).</p><p>It fails on ASSERT when <CODE>false</CODE> is returned by both the <CODE><a href="../../../nw/io/IOStream/CanRead.html">nw::io::IOStream::CanRead</a></CODE> function and the <CODE><a href="../../../nw/io/IOStream/CanAsync.html">nw::io::IOStream::CanAsync</a></CODE>function. <br /> During asynchronous processing the <CODE><a href="../../../nw/io/IOStream/IsBusy.html">nw::io::IOStream::IsBusy</a></CODE> function returns <CODE>true</CODE>, and during that time other asynchronous processes cannot be called.<br /> When processing completes, the registered callback is invoked provided the <CODE>callback</CODE> argument is not <CODE>NULL</CODE>.<BR> It is also possible to wait for asynchronous processing to end using the <CODE><a href="../../../nw/io/IOStream/WaitAsync.html">nw::io::IOStream::WaitAsync</a></CODE> function.</p></div> 58 <h2>See Also</h2> 59 <div class="section"> 60 <p class="reference"><a href="../../../nw/io/IOStream/Read.html">nw::io::IOStream::Read</a><br /><a href="../../../nw/io/IOStream/IsBusy.html">nw::io::IOStream::IsBusy</a><br /><a href="../../../nw/io/IOStream/WaitAsync.html">nw::io::IOStream::WaitAsync</a><br /><a href="../../../nw/io/IOStream/CanRead.html">nw::io::IOStream::CanRead</a><br /><a href="../../../nw/io/IOStream/CanAsync.html">nw::io::IOStream::CanAsync</a><br /><a href="../../../nw/io/IOStream/GetBufferAlign.html">nw::io::IOStream::GetBufferAlign</a><br /><a href="../../../nw/io/IOStream/GetSizeAlign.html">nw::io::IOStream::GetSizeAlign</a><br /> </p> 61 </div> 62 <h2>Revision History</h2> 63 <div class="section"> 64 <dl class="history"> 65 <dt>2009/10/20</dt> 66 <dd>Initial version.<br /> 67 </dd> 68 </dl> 69 </div> 70 <hr><p>CONFIDENTIAL</p></body> 71</html> 72