<!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.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Apache Geode Native C++ Reference: apache::geode::client::ExpirationAttributes Class 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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</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="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Apache Geode Native C++ Reference
   &#160;<span id="projectnumber">1.13.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<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 -->
<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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00731.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- 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="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">apache::geode::client::ExpirationAttributes Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Immutable parameter object for accessing and setting the attributes associated with <code>timeToLive</code> and <code>idleTimeout</code>.  
 <a href="a00731.html#details">More...</a></p>
<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:a019122fb45e7dcf8f7676e794208ea1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00731.html#a019122fb45e7dcf8f7676e794208ea1a">ExpirationAttributes</a> ()</td></tr>
<tr class="memdesc:a019122fb45e7dcf8f7676e794208ea1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">public methods  <a href="#a019122fb45e7dcf8f7676e794208ea1a">More...</a><br /></td></tr>
<tr class="separator:a019122fb45e7dcf8f7676e794208ea1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebbdf9d5c8a1aa7aba45420b72dd34e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00731.html#aebbdf9d5c8a1aa7aba45420b72dd34e9">ExpirationAttributes</a> (const std::chrono::seconds &amp;expirationTime, const <a class="el" href="a00895.html">ExpirationAction</a> expirationAction=ExpirationAction::INVALIDATE)</td></tr>
<tr class="memdesc:aebbdf9d5c8a1aa7aba45420b72dd34e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an <code><a class="el" href="a00731.html" title="Immutable parameter object for accessing and setting the attributes associated with timeToLive and id...">ExpirationAttributes</a></code> with the specified expiration time and expiration action.  <a href="#aebbdf9d5c8a1aa7aba45420b72dd34e9">More...</a><br /></td></tr>
<tr class="separator:aebbdf9d5c8a1aa7aba45420b72dd34e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbe42fa17cbc7c0e82e75c1084b042b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00895.html">ExpirationAction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00731.html#adbe42fa17cbc7c0e82e75c1084b042b5">getAction</a> () const</td></tr>
<tr class="memdesc:adbe42fa17cbc7c0e82e75c1084b042b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the action that should take place when this value or region expires.  <a href="#adbe42fa17cbc7c0e82e75c1084b042b5">More...</a><br /></td></tr>
<tr class="separator:adbe42fa17cbc7c0e82e75c1084b042b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c644cb846dd93ca8081b0442480d136"><td class="memItemLeft" align="right" valign="top">const std::chrono::seconds &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00731.html#a2c644cb846dd93ca8081b0442480d136">getTimeout</a> () const</td></tr>
<tr class="memdesc:a2c644cb846dd93ca8081b0442480d136"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the duration before a region or value expires.  <a href="#a2c644cb846dd93ca8081b0442480d136">More...</a><br /></td></tr>
<tr class="separator:a2c644cb846dd93ca8081b0442480d136"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Immutable parameter object for accessing and setting the attributes associated with <code>timeToLive</code> and <code>idleTimeout</code>. </p>
<p>If the expiration action is not specified, it defaults to <code>ExpirationAction.INVALIDATE</code>. If the timeout is not specified, it defaults to zero (which means to never time out).</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00823.html" title="Creates instances of RegionAttributes.">RegionAttributesFactory</a> </dd>
<dd>
<a class="el" href="a00819.html" title="Defines attributes for configuring a region.">RegionAttributes</a> </dd>
<dd>
<a class="el" href="a00275.html" title="Supports modification of certain region attributes after the region has been created.">AttributesMutator</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a019122fb45e7dcf8f7676e794208ea1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a019122fb45e7dcf8f7676e794208ea1a">&#9670;&nbsp;</a></span>ExpirationAttributes() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apache::geode::client::ExpirationAttributes::ExpirationAttributes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>public methods </p>
<p>constructorsConstructs a default <code><a class="el" href="a00731.html" title="Immutable parameter object for accessing and setting the attributes associated with timeToLive and id...">ExpirationAttributes</a></code>, which indicates no expiration will take place. </p>

</div>
</div>
<a id="aebbdf9d5c8a1aa7aba45420b72dd34e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebbdf9d5c8a1aa7aba45420b72dd34e9">&#9670;&nbsp;</a></span>ExpirationAttributes() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">apache::geode::client::ExpirationAttributes::ExpirationAttributes </td>
          <td>(</td>
          <td class="paramtype">const std::chrono::seconds &amp;&#160;</td>
          <td class="paramname"><em>expirationTime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00895.html">ExpirationAction</a>&#160;</td>
          <td class="paramname"><em>expirationAction</em> = <code>ExpirationAction::INVALIDATE</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructs an <code><a class="el" href="a00731.html" title="Immutable parameter object for accessing and setting the attributes associated with timeToLive and id...">ExpirationAttributes</a></code> with the specified expiration time and expiration action. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">expirationTime</td><td>Duration live before it expires </td></tr>
    <tr><td class="paramname">expirationAction</td><td>the action to take when the value expires </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00471.html" title="Thrown when an argument to a method is illegal.">IllegalArgumentException</a></td><td>if expirationTime is nonpositive </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="adbe42fa17cbc7c0e82e75c1084b042b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbe42fa17cbc7c0e82e75c1084b042b5">&#9670;&nbsp;</a></span>getAction()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00895.html">ExpirationAction</a> apache::geode::client::ExpirationAttributes::getAction </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the action that should take place when this value or region expires. </p>
<dl class="section return"><dt>Returns</dt><dd>the action to take when expiring </dd></dl>

</div>
</div>
<a id="a2c644cb846dd93ca8081b0442480d136"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c644cb846dd93ca8081b0442480d136">&#9670;&nbsp;</a></span>getTimeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::chrono::seconds&amp; apache::geode::client::ExpirationAttributes::getTimeout </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the duration before a region or value expires. </p>
<dl class="section return"><dt>Returns</dt><dd>the duration before a region or value expires or zero if it will never expire </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at
     http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<HR><address style="align: right;"><small>Apache Geode C++ Cache API Documentation</small></address>
