<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: Member List</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.14 -->
<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_1CompositeHTTPBodyStream.html">CompositeHTTPBodyStream</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">crashpad::CompositeHTTPBodyStream Member List</div>  </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html">crashpad::CompositeHTTPBodyStream</a>, including all inherited members.</p>
<table class="directory">
  <tr class="even"><td class="entry"><a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html#acadd842a8a9d844fd13f482858290993">CompositeHTTPBodyStream</a>(const PartsList &amp;parts)</td><td class="entry"><a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html">crashpad::CompositeHTTPBodyStream</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
  <tr><td class="entry"><a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html#a66355480dd05beba77261f0a512d3e70">GetBytesBuffer</a>(uint8_t *buffer, size_t max_len) override</td><td class="entry"><a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html">crashpad::CompositeHTTPBodyStream</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>HTTPBodyStream</b>() (defined in <a class="el" href="classcrashpad_1_1HTTPBodyStream.html">crashpad::HTTPBodyStream</a>)</td><td class="entry"><a class="el" href="classcrashpad_1_1HTTPBodyStream.html">crashpad::HTTPBodyStream</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
  <tr bgcolor="#f0f0f0"><td class="entry"><b>PartsList</b> typedef (defined in <a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html">crashpad::CompositeHTTPBodyStream</a>)</td><td class="entry"><a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html">crashpad::CompositeHTTPBodyStream</a></td><td class="entry"></td></tr>
  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~CompositeHTTPBodyStream</b>() override (defined in <a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html">crashpad::CompositeHTTPBodyStream</a>)</td><td class="entry"><a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html">crashpad::CompositeHTTPBodyStream</a></td><td class="entry"></td></tr>
  <tr bgcolor="#f0f0f0"><td class="entry"><b>~HTTPBodyStream</b>() (defined in <a class="el" href="classcrashpad_1_1HTTPBodyStream.html">crashpad::HTTPBodyStream</a>)</td><td class="entry"><a class="el" href="classcrashpad_1_1HTTPBodyStream.html">crashpad::HTTPBodyStream</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></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.14
</small></address>
</body>
</html>
