<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="fr">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Jan 24 17:13:34 CET 2020 -->
<title>Index (Apache Shiro :: Support :: EHCache 1.5.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-01-24">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Index (Apache Shiro :: Support :: EHCache 1.5.0 API)";
        }
    }
    catch(err) {
    }
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/apache/shiro/cache/ehcache/package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li><a href="org/apache/shiro/cache/ehcache/package-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="contentContainer"><a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:V">V</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a><a id="I:C">
<!--   -->
</a>
<h2 class="title">C</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#clear()">clear()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>
<div class="block">Removes all elements in the cache, but leaves the cache in a useable state.</div>
</dd>
</dl>
<a id="I:D">
<!--   -->
</a>
<h2 class="title">D</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#destroy()">destroy()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">Shuts-down the wrapped Ehcache CacheManager <b>only if implicitly created</b>.</div>
</dd>
</dl>
<a id="I:E">
<!--   -->
</a>
<h2 class="title">E</h2>
<dl>
<dt><a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache"><span class="typeNameLink">EhCache</span></a>&lt;<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="type parameter in EhCache">K</a>,&#8203;<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="type parameter in EhCache">V</a>&gt; - Class in <a href="org/apache/shiro/cache/ehcache/package-summary.html">org.apache.shiro.cache.ehcache</a></dt>
<dd>
<div class="block">Shiro <code>Cache</code> implementation that wraps an <code>Ehcache</code> instance.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#%3Cinit%3E(net.sf.ehcache.Ehcache)">EhCache(Ehcache)</a></span> - Constructor for class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>
<div class="block">Constructs a new EhCache instance with the given cache.</div>
</dd>
<dt><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache"><span class="typeNameLink">EhCacheManager</span></a> - Class in <a href="org/apache/shiro/cache/ehcache/package-summary.html">org.apache.shiro.cache.ehcache</a></dt>
<dd>
<div class="block">Shiro <code>CacheManager</code> implementation utilizing the Ehcache framework for all cache functionality.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#%3Cinit%3E()">EhCacheManager()</a></span> - Constructor for class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">Default no argument constructor</div>
</dd>
</dl>
<a id="I:G">
<!--   -->
</a>
<h2 class="title">G</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#get(K)">get(K)</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>
<div class="block">Gets a value of an element which matches the given key.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#getCache(java.lang.String)">getCache(String)</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">Loads an existing EhCache from the cache manager, or starts a new cache if one is not found.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#getCacheManager()">getCacheManager()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">Returns the wrapped Ehcache <code>CacheManager</code> instance.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#getCacheManagerConfigFile()">getCacheManagerConfigFile()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">Returns the resource location of the config file used to initialize a new
 EhCache CacheManager instance.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#getCacheManagerConfigFileInputStream()">getCacheManagerConfigFileInputStream()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">Acquires the InputStream for the ehcache configuration file using
 <code>ResourceUtils.getInputStreamForPath</code> with the
 path returned from <a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#getCacheManagerConfigFile()"><code>getCacheManagerConfigFile()</code></a>.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#getDiskStoreSize()">getDiskStoreSize()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>
<div class="block">Returns the size (in bytes) that this EhCache's disk store is consuming or <code>-1</code> if
 that number is unknown or cannot be calculated.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#getMemoryStoreSize()">getMemoryStoreSize()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>
<div class="block">Returns the size (in bytes) that this EhCache's memory store is using (RAM), or <code>-1</code> if
 that number is unknown or cannot be calculated.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#getMemoryUsage()">getMemoryUsage()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>
<div class="block">Returns the size (in bytes) that this EhCache is using in memory (RAM), or <code>-1</code> if that
 number is unknown or cannot be calculated.</div>
</dd>
</dl>
<a id="I:I">
<!--   -->
</a>
<h2 class="title">I</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#init()">init()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">Initializes this instance.</div>
</dd>
</dl>
<a id="I:K">
<!--   -->
</a>
<h2 class="title">K</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#keys()">keys()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>&nbsp;</dd>
</dl>
<a id="I:M">
<!--   -->
</a>
<h2 class="title">M</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#manager">manager</a></span> - Variable in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">The EhCache cache manager used by this implementation to create caches.</div>
</dd>
</dl>
<a id="I:O">
<!--   -->
</a>
<h2 class="title">O</h2>
<dl>
<dt><a href="org/apache/shiro/cache/ehcache/package-summary.html">org.apache.shiro.cache.ehcache</a> - package org.apache.shiro.cache.ehcache</dt>
<dd>
<div class="block"><a href="http://ehcache.sourceforge.net" target="_top">Ehcache</a>-based implementations of Shiro's
 cache interfaces.</div>
</dd>
</dl>
<a id="I:P">
<!--   -->
</a>
<h2 class="title">P</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#put(K,V)">put(K, V)</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>
<div class="block">Puts an object into the cache.</div>
</dd>
</dl>
<a id="I:R">
<!--   -->
</a>
<h2 class="title">R</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#remove(K)">remove(K)</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>
<div class="block">Removes the element which matches the key.</div>
</dd>
</dl>
<a id="I:S">
<!--   -->
</a>
<h2 class="title">S</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#setCacheManager(net.sf.ehcache.CacheManager)">setCacheManager(CacheManager)</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">Sets the wrapped Ehcache <code>CacheManager</code> instance.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCacheManager.html#setCacheManagerConfigFile(java.lang.String)">setCacheManagerConfigFile(String)</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCacheManager.html" title="class in org.apache.shiro.cache.ehcache">EhCacheManager</a></dt>
<dd>
<div class="block">Sets the resource location of the config file used to initialize the wrapped
 EhCache CacheManager instance.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#size()">size()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>&nbsp;</dd>
</dl>
<a id="I:T">
<!--   -->
</a>
<h2 class="title">T</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#toString()">toString()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>
<div class="block">Returns &quot;EhCache [&quot; + cache.getName() + &quot;]&quot;</div>
</dd>
</dl>
<a id="I:V">
<!--   -->
</a>
<h2 class="title">V</h2>
<dl>
<dt><span class="memberNameLink"><a href="org/apache/shiro/cache/ehcache/EhCache.html#values()">values()</a></span> - Method in class org.apache.shiro.cache.ehcache.<a href="org/apache/shiro/cache/ehcache/EhCache.html" title="class in org.apache.shiro.cache.ehcache">EhCache</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:V">V</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a></div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="org/apache/shiro/cache/ehcache/package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li><a href="org/apache/shiro/cache/ehcache/package-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
