<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.6.0/javadoc/org/apache/ignite/cache/package-frame.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

<!-- Generated by javadoc (1.8.0_77) on Tue Jul 10 11:04:52 UTC 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.ignite.cache (Ignite 2.6.0)</title>
<meta name="date" content="2018-07-10">
<link rel="stylesheet" type="text/css" href="../../../../javadoc.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>

<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>
<h1 class="bar"><a href="../../../../org/apache/ignite/cache/package-summary.html" target="classFrame">org.apache.ignite.cache</a></h1>
<div class="indexContainer">
<h2 title="Interfaces">Interfaces</h2>
<ul title="Interfaces">
<li><a href="CacheEntry.html" title="interface in org.apache.ignite.cache" target="classFrame"><span class="interfaceName">CacheEntry</span></a></li>
<li><a href="CacheEntryEventSerializableFilter.html" title="interface in org.apache.ignite.cache" target="classFrame"><span class="interfaceName">CacheEntryEventSerializableFilter</span></a></li>
<li><a href="CacheEntryProcessor.html" title="interface in org.apache.ignite.cache" target="classFrame"><span class="interfaceName">CacheEntryProcessor</span></a></li>
<li><a href="CacheInterceptor.html" title="interface in org.apache.ignite.cache" target="classFrame"><span class="interfaceName">CacheInterceptor</span></a></li>
<li><a href="CacheMetrics.html" title="interface in org.apache.ignite.cache" target="classFrame"><span class="interfaceName">CacheMetrics</span></a></li>
</ul>
<h2 title="Classes">Classes</h2>
<ul title="Classes">
<li><a href="CacheInterceptorAdapter.html" title="class in org.apache.ignite.cache" target="classFrame">CacheInterceptorAdapter</a></li>
<li><a href="CacheInterceptorEntry.html" title="class in org.apache.ignite.cache" target="classFrame">CacheInterceptorEntry</a></li>
<li><a href="CacheKeyConfiguration.html" title="class in org.apache.ignite.cache" target="classFrame">CacheKeyConfiguration</a></li>
<li><a href="CacheManager.html" title="class in org.apache.ignite.cache" target="classFrame">CacheManager</a></li>
<li><a href="CachingProvider.html" title="class in org.apache.ignite.cache" target="classFrame">CachingProvider</a></li>
<li><a href="QueryEntity.html" title="class in org.apache.ignite.cache" target="classFrame">QueryEntity</a></li>
<li><a href="QueryEntityPatch.html" title="class in org.apache.ignite.cache" target="classFrame">QueryEntityPatch</a></li>
<li><a href="QueryIndex.html" title="class in org.apache.ignite.cache" target="classFrame">QueryIndex</a></li>
</ul>
<h2 title="Enums">Enums</h2>
<ul title="Enums">
<li><a href="CacheAtomicityMode.html" title="enum in org.apache.ignite.cache" target="classFrame">CacheAtomicityMode</a></li>
<li><a href="CacheMode.html" title="enum in org.apache.ignite.cache" target="classFrame">CacheMode</a></li>
<li><a href="CachePeekMode.html" title="enum in org.apache.ignite.cache" target="classFrame">CachePeekMode</a></li>
<li><a href="CacheRebalanceMode.html" title="enum in org.apache.ignite.cache" target="classFrame">CacheRebalanceMode</a></li>
<li><a href="CacheWriteSynchronizationMode.html" title="enum in org.apache.ignite.cache" target="classFrame">CacheWriteSynchronizationMode</a></li>
<li><a href="PartitionLossPolicy.html" title="enum in org.apache.ignite.cache" target="classFrame">PartitionLossPolicy</a></li>
<li><a href="QueryIndexType.html" title="enum in org.apache.ignite.cache" target="classFrame">QueryIndexType</a></li>
</ul>
<h2 title="Exceptions">Exceptions</h2>
<ul title="Exceptions">
<li><a href="CacheAtomicUpdateTimeoutException.html" title="class in org.apache.ignite.cache" target="classFrame">CacheAtomicUpdateTimeoutException</a></li>
<li><a href="CacheExistsException.html" title="class in org.apache.ignite.cache" target="classFrame">CacheExistsException</a></li>
<li><a href="CachePartialUpdateException.html" title="class in org.apache.ignite.cache" target="classFrame">CachePartialUpdateException</a></li>
<li><a href="CacheServerNotFoundException.html" title="class in org.apache.ignite.cache" target="classFrame">CacheServerNotFoundException</a></li>
</ul>
</div>
</body>
</html>
