<!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>
<link rel="canonical" href="https://ignite.apache.org/releases/2.7.5/cppdoc/functions_func_b.html" />

<META NAME="ROBOTS" CONTENT="NOINDEX">

<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 - Functions</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" />

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></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">
&#160;

<h3><a id="index_b"></a>- b -</h3><ul>
<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>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>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#aec7706da990ae1627fe03068ba0d4348">ignite::compute::Compute</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 4 2019 17:13:59 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>
