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>Read</title>
8  </head>
9  <body>
10    <h1><CODE>nw::io::IOStream::Read</CODE> Member Function</h1>
11    <h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14virtual <span>s32</span> Read(
15     void*            buf,
16     <span>u32</span> length
17);
18</pre>
19    </div>
20    <h2>Arguments</h2>
21    <div class="section">
22      <table class="arguments">
23        <thead>
24          <tr>
25            <td width="15" />
26            <th>Name</th>
27            <td>Description</td>
28          </tr>
29        </thead>
30        <tr>
31          <td>out</td>
32          <th>buf</th>
33          <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="../FileStream/ut_FileStream_GetBufferAlign.html"><CODE>GetBufferAlign</CODE></A> function.</td>
34        </tr>
35        <tr>
36          <td>in</td>
37          <th>length</th>
38          <td>Data size to be read. The alignment of this data must match the alignment obtained using the <A href="../FileStream/ut_FileStream_GetSizeAlign.html"><CODE>GetSizeAlign</CODE></A> function.</td>
39        </tr> </table>
40    </div>
41    <h2>Return Values</h2>
42    <div class="section">Returns the number of bytes actually read if successful.<br /><br /> Returns a negative value error code if an error occurs during reading.<br /> For details about the error codes that are returned, refer to the description of the concrete class. </div>
43    <h2>Description</h2>
44    <div class="section">
45      <p>Reads data from the stream (synchronous process).</p><p>Fails on ASSERT if the return value of the <CODE><a href="../../../nw/io/IOStream/CanWrite.html"><a href="../../../nw/io/IOStream/CanRead.html">nw::io::IOStream::CanRead</a> </CODE> function is <CODE>false</CODE>.<br /> This function blocks processing until the reading out of data has completed. You can use the asynchronous version of the function (<CODE><a href="../../../nw/io/IOStream/ReadAsync.html">nw::io::IOStream::ReadAsync</a></CODE>)  if the return value of the <CODE><a href="../../../nw/io/IOStream/CanAsync.html">nw::io::IOStream::CanAsync</a></CODE> function is <CODE>true</CODE>.
46</p></div>
47    <h2>See Also</h2>
48    <div class="section">
49      <p class="reference"><a href="../../../nw/io/IOStream/ReadAsync.html">nw::io::IOStream::ReadAsync</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>
50    </div>
51    <h2>Revision History</h2>
52    <div class="section">
53      <dl class="history">
54        <dt>2009/10/20</dt>
55        <dd>Initial version.<br />
56        </dd>
57      </dl>
58    </div>
59  <hr><p>CONFIDENTIAL</p></body>
60</html>