<!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.6/cppdoc/functions_func_o.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_o"></a>- o -</h3><ul>
<li>OnEvent()
: <a class="el" href="classignite_1_1cache_1_1event_1_1CacheEntryEventListener.html#adf15ae6edbc8aadb249e3f7aa19e4a7e">ignite::cache::event::CacheEntryEventListener&lt; K, V &gt;</a>
</li>
<li>operator ConstReference&lt; T2 &gt;()
: <a class="el" href="classignite_1_1Reference.html#afd2dae4aa5c8210ae2f4b1c606a023bd">ignite::Reference&lt; T &gt;</a>
</li>
<li>operator=()
: <a class="el" href="classignite_1_1binary_1_1BinaryObject.html#af334348d8a3dfa3524d5e671c6a256ca">ignite::binary::BinaryObject</a>
, <a class="el" href="classignite_1_1cache_1_1CacheEntry.html#ae85c45474c190b9eec74d764abddee91">ignite::cache::CacheEntry&lt; K, V &gt;</a>
, <a class="el" href="classignite_1_1cache_1_1CacheEntryEvent.html#ab1649fdd6c9bb5298da9d5943dda6ca6">ignite::cache::CacheEntryEvent&lt; K, V &gt;</a>
, <a class="el" href="classignite_1_1cache_1_1MutableCacheEntry.html#abfb7efd8267e4c9fcd74c327a14b618e">ignite::cache::MutableCacheEntry&lt; K, V &gt;</a>
, <a class="el" href="classignite_1_1cache_1_1query_1_1SqlFieldsQuery.html#a618397f6c746f45482400a32d34ad68d">ignite::cache::query::SqlFieldsQuery</a>
, <a class="el" href="classignite_1_1cache_1_1query_1_1SqlQuery.html#ac31b6077c52d6875b0b5ebd8634b37e5">ignite::cache::query::SqlQuery</a>
, <a class="el" href="classignite_1_1ConstReference.html#a32b372113f08ffa0bd798613dd7bef8e">ignite::ConstReference&lt; T &gt;</a>
, <a class="el" href="classignite_1_1Date.html#ad3304e0f62ad056fec6c593b703032a5">ignite::Date</a>
, <a class="el" href="classignite_1_1Future.html#ab22e443f0d35cecfdd677dc237c0c4f7">ignite::Future&lt; T &gt;</a>
, <a class="el" href="classignite_1_1Future_3_01void_01_4.html#ae5463b058aa141dc9321df728bed98d5">ignite::Future&lt; void &gt;</a>
, <a class="el" href="classignite_1_1IgniteError.html#a7c949fd4a1db728e2f9c0f26a23bd0d5">ignite::IgniteError</a>
, <a class="el" href="classignite_1_1Reference.html#a6c7943df1753b8c13cd200347843424d">ignite::Reference&lt; T &gt;</a>
, <a class="el" href="classignite_1_1Time.html#a449a8ea0056dbee6a7483a3f39daafaf">ignite::Time</a>
, <a class="el" href="classignite_1_1Timestamp.html#a0ce833d555adcd019ce24df9054821a7">ignite::Timestamp</a>
, <a class="el" href="classignite_1_1transactions_1_1Transaction.html#a1f5f7ffba636a676f63d31ed7230a8eb">ignite::transactions::Transaction</a>
, <a class="el" href="classignite_1_1transactions_1_1TransactionMetrics.html#a408e153d34e91fd95013d406d82680d0">ignite::transactions::TransactionMetrics</a>
, <a class="el" href="classignite_1_1transactions_1_1Transactions.html#ad48180fccd356ed2d0888889307b0899">ignite::transactions::Transactions</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Sep 11 2019 22:23:04 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>
