<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>&nbsp; Apache Ignite C++: Class Members</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" />
</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="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">&nbsp; Apache Ignite C++
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- 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 class="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>

<h3><a id="index_b"></a>- b -</h3><ul>
<li>BACKUP
: <a class="el" href="structignite_1_1cache_1_1CachePeekMode.html#acd2d0e89b2c2c9d391060a89585bc2b2aa48147b4bdb14cb334fec9e695f27745">ignite::cache::CachePeekMode</a>
, <a class="el" href="structignite_1_1thin_1_1cache_1_1CachePeekMode.html#a272b97468acc45f2b16d89c65e9891c6a8fbf1665d02c210075a7bc20f1187518">ignite::thin::cache::CachePeekMode</a>
</li>
<li>BinaryArrayReader()
: <a class="el" href="classignite_1_1binary_1_1BinaryArrayReader.html#a769b28f697b49ac51623493006e4eaa7">ignite::binary::BinaryArrayReader&lt; T &gt;</a>
</li>
<li>BinaryArrayWriter()
: <a class="el" href="classignite_1_1binary_1_1BinaryArrayWriter.html#aec2ce4c2637563459874d053d24ecced">ignite::binary::BinaryArrayWriter&lt; T &gt;</a>
</li>
<li>BinaryCollectionReader()
: <a class="el" href="classignite_1_1binary_1_1BinaryCollectionReader.html#a3b88325f92a5a1784555a51db7648981">ignite::binary::BinaryCollectionReader&lt; T &gt;</a>
</li>
<li>BinaryCollectionWriter()
: <a class="el" href="classignite_1_1binary_1_1BinaryCollectionWriter.html#a34d5d50ba640893134cd092460001dd9">ignite::binary::BinaryCollectionWriter&lt; T &gt;</a>
</li>
<li>BinaryEnumDereferenced
: <a class="el" href="structignite_1_1binary_1_1BinaryEnum_3_01T_01_5_01_4.html#a190ddba8542dfae87ae210a92865ffbf">ignite::binary::BinaryEnum&lt; T * &gt;</a>
</li>
<li>BinaryEnumEntry()
: <a class="el" href="classignite_1_1binary_1_1BinaryEnumEntry.html#a3b9c6c381c6d4cf74171c4a23ac29767">ignite::binary::BinaryEnumEntry</a>
</li>
<li>BinaryMapReader()
: <a class="el" href="classignite_1_1binary_1_1BinaryMapReader.html#a2b5fe1df5d800106befb2b6984b16f2d">ignite::binary::BinaryMapReader&lt; K, V &gt;</a>
</li>
<li>BinaryMapWriter()
: <a class="el" href="classignite_1_1binary_1_1BinaryMapWriter.html#a4a68422e559efcda98e8c492b57d8aa3">ignite::binary::BinaryMapWriter&lt; K, V &gt;</a>
</li>
<li>BinaryObject()
: <a class="el" href="classignite_1_1binary_1_1BinaryObject.html#a33e2264ff8c984c59b5578b8d285af68">ignite::binary::BinaryObject</a>
</li>
<li>BinaryRawReader()
: <a class="el" href="classignite_1_1binary_1_1BinaryRawReader.html#a5a6449ff5459521cb2c7ff3827ace30c">ignite::binary::BinaryRawReader</a>
</li>
<li>BinaryRawWriter()
: <a class="el" href="classignite_1_1binary_1_1BinaryRawWriter.html#a46c2c51b894800c279e4272c2d6d6430">ignite::binary::BinaryRawWriter</a>
</li>
<li>BinaryReader()
: <a class="el" href="classignite_1_1binary_1_1BinaryReader.html#a2e625f22ec6b4d4b66603d6929da54d2">ignite::binary::BinaryReader</a>
</li>
<li>BinaryStringArrayReader()
: <a class="el" href="classignite_1_1binary_1_1BinaryStringArrayReader.html#a8ef57ef19ef33b7f7d0e7915fcca7246">ignite::binary::BinaryStringArrayReader</a>
</li>
<li>BinaryStringArrayWriter()
: <a class="el" href="classignite_1_1binary_1_1BinaryStringArrayWriter.html#a93bc442c34d5e02ae6d485064fbb3cd2">ignite::binary::BinaryStringArrayWriter</a>
</li>
<li>BinaryTypeDereferenced
: <a class="el" href="structignite_1_1binary_1_1BinaryType_3_01T_01_5_4.html#a6af48dd63474d8baf2756192597e9c10">ignite::binary::BinaryType&lt; T *&gt;</a>
</li>
<li>BinaryWriter()
: <a class="el" href="classignite_1_1binary_1_1BinaryWriter.html#a468b45f115ac3a9758890d50d0023409">ignite::binary::BinaryWriter</a>
</li>
<li>Broadcast()
: <a class="el" href="classignite_1_1compute_1_1Compute.html#aac88705f7750ccb045a0aa5f0cb1af1e">ignite::compute::Compute</a>
</li>
<li>BroadcastAsync()
: <a class="el" href="classignite_1_1compute_1_1Compute.html#a9a5219371ae17473ae0528494b9b0a64">ignite::compute::Compute</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Sep 11 2021 21:14:00 for &nbsp; Apache Ignite C++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
