<!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::FileWriterInterface 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_1FileWriterInterface.html">FileWriterInterface</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_1FileWriterInterface-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::FileWriterInterface Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>An interface to write to files and other file-like objects with semantics matching the underlying platform (POSIX or Windows).  
 <a href="classcrashpad_1_1FileWriterInterface.html#details">More...</a></p>

<p><code>#include &quot;util/file/file_writer.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::FileWriterInterface:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1FileWriterInterface.png" usemap="#crashpad::FileWriterInterface_map" alt=""/>
  <map id="crashpad::FileWriterInterface_map" name="crashpad::FileWriterInterface_map">
<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="228,0,446,24"/>
<area href="classcrashpad_1_1FileWriter.html" title="A file writer implementation that wraps traditional system file operations on files accessed through ..." alt="crashpad::FileWriter" shape="rect" coords="0,112,218,136"/>
<area href="classcrashpad_1_1StringFile.html" title="A file reader and writer backed by a virtual file, as opposed to a file on disk or other operating sy..." alt="crashpad::StringFile" shape="rect" coords="228,112,446,136"/>
<area href="classcrashpad_1_1WeakFileHandleFileWriter.html" title="A file writer backed by a FileHandle." alt="crashpad::WeakFileHandleFileWriter" shape="rect" coords="456,112,674,136"/>
  </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:a34e3a6edac09771c7746901b77acc5b1"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileWriterInterface.html#a34e3a6edac09771c7746901b77acc5b1">Write</a> (const void *data, size_t size)=0</td></tr>
<tr class="memdesc:a34e3a6edac09771c7746901b77acc5b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#a8a91af9c690d2a280c463596bf82070b" title="Wraps WriteFile(), ensuring that exactly size bytes are written.">LoggingWriteFile()</a>, or provides an implementation with identical semantics.  <a href="classcrashpad_1_1FileWriterInterface.html#a34e3a6edac09771c7746901b77acc5b1">More...</a><br /></td></tr>
<tr class="separator:a34e3a6edac09771c7746901b77acc5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a056d01fcfa12a49cff735cf4f63bc1ba"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileWriterInterface.html#a056d01fcfa12a49cff735cf4f63bc1ba">WriteIoVec</a> (std::vector&lt; <a class="el" href="structcrashpad_1_1WritableIoVec.html">WritableIoVec</a> &gt; *iovecs)=0</td></tr>
<tr class="memdesc:a056d01fcfa12a49cff735cf4f63bc1ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <code>writev()</code> on POSIX or provides an alternate implementation with identical semantics. This method will write entire buffers, continuing after a short write or after being interrupted. On non-POSIX this is a simple wrapper around <a class="el" href="classcrashpad_1_1FileWriterInterface.html#a34e3a6edac09771c7746901b77acc5b1" title="Wraps LoggingWriteFile(), or provides an implementation with identical semantics.">Write()</a>.  <a href="classcrashpad_1_1FileWriterInterface.html#a056d01fcfa12a49cff735cf4f63bc1ba">More...</a><br /></td></tr>
<tr class="separator:a056d01fcfa12a49cff735cf4f63bc1ba"><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:a8d56f7d12dfcce3e4a39ad1524302aa1 inherit pub_methods_classcrashpad_1_1FileSeekerInterface"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileSeekerInterface.html#a8d56f7d12dfcce3e4a39ad1524302aa1">Seek</a> (<a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> offset, int whence)=0</td></tr>
<tr class="memdesc:a8d56f7d12dfcce3e4a39ad1524302aa1 inherit pub_methods_classcrashpad_1_1FileSeekerInterface"><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_1FileSeekerInterface.html#a8d56f7d12dfcce3e4a39ad1524302aa1">More...</a><br /></td></tr>
<tr class="separator:a8d56f7d12dfcce3e4a39ad1524302aa1 inherit pub_methods_classcrashpad_1_1FileSeekerInterface"><td class="memSeparator" colspan="2">&#160;</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>An interface to write to files and other file-like objects with semantics matching the underlying platform (POSIX or Windows). </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a34e3a6edac09771c7746901b77acc5b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34e3a6edac09771c7746901b77acc5b1">&#9670;&nbsp;</a></span>Write()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool crashpad::FileWriterInterface::Write </td>
          <td>(</td>
          <td class="paramtype">const 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">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Wraps <a class="el" href="namespacecrashpad.html#a8a91af9c690d2a280c463596bf82070b" title="Wraps WriteFile(), ensuring that exactly size bytes are written.">LoggingWriteFile()</a>, or provides an implementation with identical semantics. </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>

<p>Implemented in <a class="el" href="classcrashpad_1_1FileWriter.html#a88df535e600f9c9b57a44130de1d0eb0">crashpad::FileWriter</a>, <a class="el" href="classcrashpad_1_1WeakFileHandleFileWriter.html#a8caefa3cd0fbd84fa79695cbe3e13d94">crashpad::WeakFileHandleFileWriter</a>, and <a class="el" href="classcrashpad_1_1StringFile.html#aa7e22ad48bbedf3e1e6a257cfba0c137">crashpad::StringFile</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool crashpad::FileWriterInterface::WriteIoVec </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="structcrashpad_1_1WritableIoVec.html">WritableIoVec</a> &gt; *&#160;</td>
          <td class="paramname"><em>iovecs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Wraps <code>writev()</code> on POSIX or provides an alternate implementation with identical semantics. This method will write entire buffers, continuing after a short write or after being interrupted. On non-POSIX this is a simple wrapper around <a class="el" href="classcrashpad_1_1FileWriterInterface.html#a34e3a6edac09771c7746901b77acc5b1" title="Wraps LoggingWriteFile(), or provides an implementation with identical semantics.">Write()</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>The contents of <em>iovecs</em> are undefined when this method returns. </dd></dl>

<p>Implemented in <a class="el" href="classcrashpad_1_1FileWriter.html#a841442d50f6edaacdfeafe859c42a876">crashpad::FileWriter</a>, <a class="el" href="classcrashpad_1_1WeakFileHandleFileWriter.html#aa8aa7c9034126003912e7349a1e3adc3">crashpad::WeakFileHandleFileWriter</a>, and <a class="el" href="classcrashpad_1_1StringFile.html#aa5b57a3a13ee4f973dc7984fbc6e3237">crashpad::StringFile</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>util/file/file_writer.h</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>
