<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::FileReader Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crashpad
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1FileReader.html">FileReader</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classcrashpad_1_1FileReader-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::FileReader Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A file reader implementation that wraps traditional system file operations on files accessed through the filesystem.  
 <a href="classcrashpad_1_1FileReader.html#details">More...</a></p>

<p><code>#include &quot;util/file/file_reader.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::FileReader:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1FileReader.png" usemap="#crashpad::FileReader_map" alt=""/>
  <map id="crashpad::FileReader_map" name="crashpad::FileReader_map">
<area href="classcrashpad_1_1FileReaderInterface.html" title="An interface to read to files and other file-like objects with semantics matching the underlying plat..." alt="crashpad::FileReaderInterface" shape="rect" coords="0,56,183,80"/>
<area href="classcrashpad_1_1FileSeekerInterface.html" title="An interface to seek in files and other file-like objects with semantics matching the underlying plat..." alt="crashpad::FileSeekerInterface" shape="rect" coords="0,0,183,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7b1d936d3040a4ba89fca13fc6566ddd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileReader.html#a7b1d936d3040a4ba89fca13fc6566ddd">Open</a> (const base::FilePath &amp;path)</td></tr>
<tr class="memdesc:a7b1d936d3040a4ba89fca13fc6566ddd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#ab3712d59104f641109b170c78a912b4d" title="Wraps OpenFileForRead(), logging an error if the operation fails.">LoggingOpenFileForRead()</a>.  <a href="classcrashpad_1_1FileReader.html#a7b1d936d3040a4ba89fca13fc6566ddd">More...</a><br /></td></tr>
<tr class="separator:a7b1d936d3040a4ba89fca13fc6566ddd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95e3c16213d1b2eb9a6896057afd7463"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileReader.html#a95e3c16213d1b2eb9a6896057afd7463">Close</a> ()</td></tr>
<tr class="memdesc:a95e3c16213d1b2eb9a6896057afd7463"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps CheckedCloseHandle().  <a href="classcrashpad_1_1FileReader.html#a95e3c16213d1b2eb9a6896057afd7463">More...</a><br /></td></tr>
<tr class="separator:a95e3c16213d1b2eb9a6896057afd7463"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71bb3e12f135a0e84b1385ab89e46611"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a25465a3a2d289a06addf93c346c6f917">FileOperationResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileReader.html#a71bb3e12f135a0e84b1385ab89e46611">Read</a> (void *data, size_t size) override</td></tr>
<tr class="memdesc:a71bb3e12f135a0e84b1385ab89e46611"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, or provides an implementation with identical semantics.  <a href="classcrashpad_1_1FileReader.html#a71bb3e12f135a0e84b1385ab89e46611">More...</a><br /></td></tr>
<tr class="separator:a71bb3e12f135a0e84b1385ab89e46611"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa468e6ee52895d46173aed720230f4b8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileReader.html#aa468e6ee52895d46173aed720230f4b8">Seek</a> (<a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> offset, int whence) override</td></tr>
<tr class="memdesc:aa468e6ee52895d46173aed720230f4b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#a3d6cedc10e24145d4a0c1000c33f8a10" title="Wraps lseek() or SetFilePointerEx(). Logs an error if the operation fails.">LoggingSeekFile()</a> or provides an alternate implementation with identical semantics.  <a href="classcrashpad_1_1FileReader.html#aa468e6ee52895d46173aed720230f4b8">More...</a><br /></td></tr>
<tr class="separator:aa468e6ee52895d46173aed720230f4b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classcrashpad_1_1FileReaderInterface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcrashpad_1_1FileReaderInterface')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classcrashpad_1_1FileReaderInterface.html">crashpad::FileReaderInterface</a></td></tr>
<tr class="memitem:ad046f1ebf1071eb6b92a2a8d06c14a56 inherit pub_methods_classcrashpad_1_1FileReaderInterface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileReaderInterface.html#ad046f1ebf1071eb6b92a2a8d06c14a56">ReadExactly</a> (void *data, size_t size)</td></tr>
<tr class="memdesc:ad046f1ebf1071eb6b92a2a8d06c14a56 inherit pub_methods_classcrashpad_1_1FileReaderInterface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="classcrashpad_1_1FileReaderInterface.html#ad9035ff345274f33cef248712d53d9e1" title="Wraps ReadFile(), or provides an implementation with identical semantics.">Read()</a>, ensuring that the read succeeded and exactly <em>size</em> bytes were read.  <a href="classcrashpad_1_1FileReaderInterface.html#ad046f1ebf1071eb6b92a2a8d06c14a56">More...</a><br /></td></tr>
<tr class="separator:ad046f1ebf1071eb6b92a2a8d06c14a56 inherit pub_methods_classcrashpad_1_1FileReaderInterface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classcrashpad_1_1FileSeekerInterface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcrashpad_1_1FileSeekerInterface')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classcrashpad_1_1FileSeekerInterface.html">crashpad::FileSeekerInterface</a></td></tr>
<tr class="memitem:a49a884bfb0a61461b0291c975aa15382 inherit pub_methods_classcrashpad_1_1FileSeekerInterface"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileSeekerInterface.html#a49a884bfb0a61461b0291c975aa15382">SeekGet</a> ()</td></tr>
<tr class="memdesc:a49a884bfb0a61461b0291c975aa15382 inherit pub_methods_classcrashpad_1_1FileSeekerInterface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="classcrashpad_1_1FileSeekerInterface.html#a8d56f7d12dfcce3e4a39ad1524302aa1" title="Wraps LoggingSeekFile() or provides an alternate implementation with identical semantics.">Seek()</a>, using <code>SEEK_CUR</code> to obtain the file’s current position.  <a href="classcrashpad_1_1FileSeekerInterface.html#a49a884bfb0a61461b0291c975aa15382">More...</a><br /></td></tr>
<tr class="separator:a49a884bfb0a61461b0291c975aa15382 inherit pub_methods_classcrashpad_1_1FileSeekerInterface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add2e1ee642d94c91ef722911e9aee250 inherit pub_methods_classcrashpad_1_1FileSeekerInterface"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileSeekerInterface.html#add2e1ee642d94c91ef722911e9aee250">SeekSet</a> (<a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> offset)</td></tr>
<tr class="memdesc:add2e1ee642d94c91ef722911e9aee250 inherit pub_methods_classcrashpad_1_1FileSeekerInterface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="classcrashpad_1_1FileSeekerInterface.html#a8d56f7d12dfcce3e4a39ad1524302aa1" title="Wraps LoggingSeekFile() or provides an alternate implementation with identical semantics.">Seek()</a>, using <code>SEEK_SET</code>, ensuring that the seek succeeded and the file is positioned as desired.  <a href="classcrashpad_1_1FileSeekerInterface.html#add2e1ee642d94c91ef722911e9aee250">More...</a><br /></td></tr>
<tr class="separator:add2e1ee642d94c91ef722911e9aee250 inherit pub_methods_classcrashpad_1_1FileSeekerInterface"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A file reader implementation that wraps traditional system file operations on files accessed through the filesystem. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a95e3c16213d1b2eb9a6896057afd7463"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95e3c16213d1b2eb9a6896057afd7463">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void crashpad::FileReader::Close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wraps CheckedCloseHandle(). </p>
<dl class="section note"><dt>Note</dt><dd>It is only valid to call this method on an object that has had a successful <a class="el" href="classcrashpad_1_1FileReader.html#a7b1d936d3040a4ba89fca13fc6566ddd" title="Wraps LoggingOpenFileForRead().">Open()</a> that has not yet been matched by a subsequent call to this method. </dd></dl>

</div>
</div>
<a id="a7b1d936d3040a4ba89fca13fc6566ddd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b1d936d3040a4ba89fca13fc6566ddd">&#9670;&nbsp;</a></span>Open()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::FileReader::Open </td>
          <td>(</td>
          <td class="paramtype">const base::FilePath &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wraps <a class="el" href="namespacecrashpad.html#ab3712d59104f641109b170c78a912b4d" title="Wraps OpenFileForRead(), logging an error if the operation fails.">LoggingOpenFileForRead()</a>. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the operation succeeded, <code>false</code> if it failed, with an error message logged.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>After a successful call, this method cannot be called again until after <a class="el" href="classcrashpad_1_1FileReader.html#a95e3c16213d1b2eb9a6896057afd7463" title="Wraps CheckedCloseHandle().">Close()</a>. </dd></dl>

</div>
</div>
<a id="a71bb3e12f135a0e84b1385ab89e46611"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71bb3e12f135a0e84b1385ab89e46611">&#9670;&nbsp;</a></span>Read()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacecrashpad.html#a25465a3a2d289a06addf93c346c6f917">FileOperationResult</a> crashpad::FileReader::Read </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, or provides an implementation with identical semantics. </p>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes actually read if the operation succeeded, which may be <code>0</code> or any positive value less than or equal to <em>size</em>. <code>-1</code> if the operation failed, with an error message logged.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is only valid to call this method between a successful <a class="el" href="classcrashpad_1_1FileReader.html#a7b1d936d3040a4ba89fca13fc6566ddd" title="Wraps LoggingOpenFileForRead().">Open()</a> and a <a class="el" href="classcrashpad_1_1FileReader.html#a95e3c16213d1b2eb9a6896057afd7463" title="Wraps CheckedCloseHandle().">Close()</a>. </dd></dl>

<p>Implements <a class="el" href="classcrashpad_1_1FileReaderInterface.html#ad9035ff345274f33cef248712d53d9e1">crashpad::FileReaderInterface</a>.</p>

</div>
</div>
<a id="aa468e6ee52895d46173aed720230f4b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa468e6ee52895d46173aed720230f4b8">&#9670;&nbsp;</a></span>Seek()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> crashpad::FileReader::Seek </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a>&#160;</td>
          <td class="paramname"><em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>whence</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Wraps <a class="el" href="namespacecrashpad.html#a3d6cedc10e24145d4a0c1000c33f8a10" title="Wraps lseek() or SetFilePointerEx(). Logs an error if the operation fails.">LoggingSeekFile()</a> or provides an alternate implementation with identical semantics. </p>
<dl class="section return"><dt>Returns</dt><dd>The return value of <a class="el" href="namespacecrashpad.html#a3d6cedc10e24145d4a0c1000c33f8a10" title="Wraps lseek() or SetFilePointerEx(). Logs an error if the operation fails.">LoggingSeekFile()</a>. <code>-1</code> on failure, with an error message logged.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is only valid to call this method between a successful <a class="el" href="classcrashpad_1_1FileReader.html#a7b1d936d3040a4ba89fca13fc6566ddd" title="Wraps LoggingOpenFileForRead().">Open()</a> and a <a class="el" href="classcrashpad_1_1FileReader.html#a95e3c16213d1b2eb9a6896057afd7463" title="Wraps CheckedCloseHandle().">Close()</a>. </dd></dl>

<p>Implements <a class="el" href="classcrashpad_1_1FileSeekerInterface.html#a8d56f7d12dfcce3e4a39ad1524302aa1">crashpad::FileSeekerInterface</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>util/file/file_reader.h</li>
<li>util/file/file_reader.cc</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>
