<!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.1.0/dotnetdoc/interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_i_expiry_policy.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.11"/>
<title>Apache Ignite.NET: Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy Interface Reference</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</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">Apache Ignite.NET
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_i_expiry_policy.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_i_expiry_policy-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Defines functions to determine when cache entries will expire based on creation, access and modification operations.  
 <a href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_i_expiry_policy.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_i_expiry_policy.png" usemap="#Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy_map" alt=""/>
  <map id="Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy_map" name="Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy_map">
<area href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_expiry_policy.html" title="Default expiry policy implementation with all durations deinfed explicitly. " alt="Apache.Ignite.Core.Cache.Expiry.ExpiryPolicy" shape="rect" coords="0,56,281,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af30b5b2e7c97e6fea43812102c3dad21"><td class="memItemLeft" align="right" valign="top">TimeSpan&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_i_expiry_policy.html#af30b5b2e7c97e6fea43812102c3dad21">GetExpiryForCreate</a> ()</td></tr>
<tr class="memdesc:af30b5b2e7c97e6fea43812102c3dad21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets expiry for create operation.  <a href="#af30b5b2e7c97e6fea43812102c3dad21">More...</a><br /></td></tr>
<tr class="separator:af30b5b2e7c97e6fea43812102c3dad21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8be55906be8d11d0a667ac9916b6ad74"><td class="memItemLeft" align="right" valign="top">TimeSpan&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_i_expiry_policy.html#a8be55906be8d11d0a667ac9916b6ad74">GetExpiryForUpdate</a> ()</td></tr>
<tr class="memdesc:a8be55906be8d11d0a667ac9916b6ad74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets expiry for update operation.  <a href="#a8be55906be8d11d0a667ac9916b6ad74">More...</a><br /></td></tr>
<tr class="separator:a8be55906be8d11d0a667ac9916b6ad74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a313a02ad200daeede1686c57efb64243"><td class="memItemLeft" align="right" valign="top">TimeSpan&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_i_expiry_policy.html#a313a02ad200daeede1686c57efb64243">GetExpiryForAccess</a> ()</td></tr>
<tr class="memdesc:a313a02ad200daeede1686c57efb64243"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets expiry for access operation.  <a href="#a313a02ad200daeede1686c57efb64243">More...</a><br /></td></tr>
<tr class="separator:a313a02ad200daeede1686c57efb64243"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"></div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a313a02ad200daeede1686c57efb64243"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TimeSpan Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy.GetExpiryForAccess </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>If <code>TimeSpan.ZERO</code> is returned, cache entry is considered immediately expired. </p>
<p>If <code>null</code> is returned, no change to previously understood expiry is performed. </p>
<dl class="section return"><dt>Returns</dt><dd>Expiry for access operation.</dd></dl>

<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_expiry_policy.html#a8495256ca620dbd6f4eabf335760b098">Apache.Ignite.Core.Cache.Expiry.ExpiryPolicy</a>.</p>

</div>
</div>
<a class="anchor" id="af30b5b2e7c97e6fea43812102c3dad21"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TimeSpan Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy.GetExpiryForCreate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>If <code>TimeSpan.ZERO</code> is returned, cache entry is considered immediately expired and will not be added to cache. </p>
<p>If <code>null</code> is returned, no change to previously understood expiry is performed. </p>
<dl class="section return"><dt>Returns</dt><dd>Expiry for create opeartion.</dd></dl>

<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_expiry_policy.html#a4ad198508680baff9049430345472cdf">Apache.Ignite.Core.Cache.Expiry.ExpiryPolicy</a>.</p>

</div>
</div>
<a class="anchor" id="a8be55906be8d11d0a667ac9916b6ad74"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TimeSpan Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy.GetExpiryForUpdate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>If <code>TimeSpan.ZERO</code> is returned, cache entry is considered immediately expired. </p>
<p>If <code>null</code> is returned, no change to previously understood expiry is performed. </p>
<dl class="section return"><dt>Returns</dt><dd>Expiry for update operation.</dd></dl>

<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_expiry_policy.html#a7dce2cc9c1c60f7b33d01f12147c4e21">Apache.Ignite.Core.Cache.Expiry.ExpiryPolicy</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_apache.html">Apache</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite.html">Ignite</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core.html">Core</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_cache.html">Cache</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry.html">Expiry</a></li><li class="navelem"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_i_expiry_policy.html">IExpiryPolicy</a></li>
    <li class="footer">Generated on Thu Jul 20 2017 19:19:56 for Apache Ignite.NET by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
