<!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.17"/>
<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" />
</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.17 -->
<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>
</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__7E"></a>- ~ -</h3><ul>
<li>~AttachHelper()
: <a class="el" href="classignite_1_1jni_1_1AttachHelper.html#aac5eaf30b14e28da9b6664c8627f5dad">ignite::jni::AttachHelper</a>
</li>
<li>~CacheClient()
: <a class="el" href="classignite_1_1thin_1_1cache_1_1CacheClient.html#a103c8328d3f48722ab84285e5c24429a">ignite::thin::cache::CacheClient&lt; K, V &gt;</a>
</li>
<li>~CacheEntry()
: <a class="el" href="classignite_1_1cache_1_1CacheEntry.html#a61633aa1eaa9175041b01ae249970cb5">ignite::cache::CacheEntry&lt; K, V &gt;</a>
</li>
<li>~CacheEntryEvent()
: <a class="el" href="classignite_1_1cache_1_1CacheEntryEvent.html#a2db82785231a4f7c734123682d144e4e">ignite::cache::CacheEntryEvent&lt; K, V &gt;</a>
</li>
<li>~CacheEntryEventFilter()
: <a class="el" href="classignite_1_1cache_1_1event_1_1CacheEntryEventFilter.html#a30e50908df2de395a0a07ba8eab67919">ignite::cache::event::CacheEntryEventFilter&lt; K, V &gt;</a>
</li>
<li>~CacheEntryEventListener()
: <a class="el" href="classignite_1_1cache_1_1event_1_1CacheEntryEventListener.html#a533f2de05cd53debbccac400a280fbb2">ignite::cache::event::CacheEntryEventListener&lt; K, V &gt;</a>
</li>
<li>~CacheEntryProcessor()
: <a class="el" href="classignite_1_1cache_1_1CacheEntryProcessor.html#a8dd97ecc1f6294ea9e52e4baa2ffa78a">ignite::cache::CacheEntryProcessor&lt; K, V, R, A &gt;</a>
</li>
<li>~ClientTransaction()
: <a class="el" href="classignite_1_1thin_1_1transactions_1_1ClientTransaction.html#a59f9dbbe83fdfda17315dd09e4055d87">ignite::thin::transactions::ClientTransaction</a>
</li>
<li>~ClientTransactions()
: <a class="el" href="classignite_1_1thin_1_1transactions_1_1ClientTransactions.html#a8f1456d003c59183adcc98c37dbf5ff1">ignite::thin::transactions::ClientTransactions</a>
</li>
<li>~ComputeClient()
: <a class="el" href="classignite_1_1thin_1_1compute_1_1ComputeClient.html#acc72f9378d6cbfced0ebda55d02e7bc2">ignite::thin::compute::ComputeClient</a>
</li>
<li>~ComputeFunc()
: <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html#a45e62796fb8dbe708998aba8315f20c5">ignite::compute::ComputeFunc&lt; R &gt;</a>
</li>
<li>~ConstReference()
: <a class="el" href="classignite_1_1ConstReference.html#a8969e0b386401978058310d6dc2a126f">ignite::ConstReference&lt; T &gt;</a>
</li>
<li>~ContinuousQuery()
: <a class="el" href="classignite_1_1cache_1_1query_1_1continuous_1_1ContinuousQuery.html#aaf1d6a4d053cefd163bdfa034374473f">ignite::cache::query::continuous::ContinuousQuery&lt; K, V &gt;</a>
</li>
<li>~IgniteClient()
: <a class="el" href="classignite_1_1thin_1_1IgniteClient.html#ac6dd562b3c3166d58f7628bcb39d12da">ignite::thin::IgniteClient</a>
</li>
<li>~IgniteError()
: <a class="el" href="classignite_1_1IgniteError.html#a254c56d4d3bfc17d78c49321a0165cf1">ignite::IgniteError</a>
</li>
<li>~IgnitePredicate()
: <a class="el" href="classignite_1_1IgnitePredicate.html#af02f0bc461c4079de520bfd8c09046d7">ignite::IgnitePredicate&lt; T &gt;</a>
</li>
<li>~JavaGlobalRef()
: <a class="el" href="classignite_1_1jni_1_1JavaGlobalRef.html#a10f64725d464187c412c81a572b6c108">ignite::jni::JavaGlobalRef</a>
</li>
<li>~JniErrorInfo()
: <a class="el" href="structignite_1_1jni_1_1java_1_1JniErrorInfo.html#a2fbed5cbaab8763027d04d7ba97c0a6d">ignite::jni::java::JniErrorInfo</a>
</li>
<li>~JvmOptions()
: <a class="el" href="classignite_1_1JvmOptions.html#a5f15b2d6e521944ee62ed829ce0cf568">ignite::JvmOptions</a>
</li>
<li>~Reference()
: <a class="el" href="classignite_1_1Reference.html#aa65cdfb8035bf373b8b588ac2f1f8df7">ignite::Reference&lt; T &gt;</a>
</li>
<li>~SqlFieldsQuery()
: <a class="el" href="classignite_1_1cache_1_1query_1_1SqlFieldsQuery.html#a05e69e39b64e29ca573289871ee07b59">ignite::cache::query::SqlFieldsQuery</a>
, <a class="el" href="classignite_1_1thin_1_1cache_1_1query_1_1SqlFieldsQuery.html#a8afcec8e4123a49b346779aba4a20f4a">ignite::thin::cache::query::SqlFieldsQuery</a>
</li>
<li>~SqlQuery()
: <a class="el" href="classignite_1_1cache_1_1query_1_1SqlQuery.html#af486d65c8b0004ec7fb1633b1400c986">ignite::cache::query::SqlQuery</a>
</li>
<li>~Transaction()
: <a class="el" href="classignite_1_1transactions_1_1Transaction.html#a51c698ca3933a26092d4d71db4064e98">ignite::transactions::Transaction</a>
</li>
<li>~Transactions()
: <a class="el" href="classignite_1_1transactions_1_1Transactions.html#acdd4c701c3140a8fecd953f49f6def07">ignite::transactions::Transactions</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jan 10 2022 11:02: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.17
</small></address>
</body>
</html>
