blob: d33fe3a3783f7a151f9baf179489b8d619d5cd15 [file] [log] [blame]
<!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::CacheListener 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.0</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('a00375.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> &#124;
<a href="#pro-methods">Protected Member Functions</a> </div>
<div class="headertitle">
<div class="title">apache::geode::client::CacheListener Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>An application plug-in that can be installed on a region.
<a href="a00375.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:a08132e78c6431f81bd4ddc7f1a87cc44"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#a08132e78c6431f81bd4ddc7f1a87cc44">afterCreate</a> (const <a class="el" href="a00459.html">EntryEvent</a> &amp;event)</td></tr>
<tr class="memdesc:a08132e78c6431f81bd4ddc7f1a87cc44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the event of a new key being added to a region. <a href="#a08132e78c6431f81bd4ddc7f1a87cc44">More...</a><br /></td></tr>
<tr class="separator:a08132e78c6431f81bd4ddc7f1a87cc44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae25df9bc72e208023068fd4f193d4224"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#ae25df9bc72e208023068fd4f193d4224">afterDestroy</a> (const <a class="el" href="a00459.html">EntryEvent</a> &amp;event)</td></tr>
<tr class="memdesc:ae25df9bc72e208023068fd4f193d4224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the event of an entry being destroyed. <a href="#ae25df9bc72e208023068fd4f193d4224">More...</a><br /></td></tr>
<tr class="separator:ae25df9bc72e208023068fd4f193d4224"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42a3838742960796df2fb6668bf8d108"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#a42a3838742960796df2fb6668bf8d108">afterInvalidate</a> (const <a class="el" href="a00459.html">EntryEvent</a> &amp;event)</td></tr>
<tr class="memdesc:a42a3838742960796df2fb6668bf8d108"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the event of an entry's value being invalidated. <a href="#a42a3838742960796df2fb6668bf8d108">More...</a><br /></td></tr>
<tr class="separator:a42a3838742960796df2fb6668bf8d108"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae81f5fe95bd0a2ad570a273a4e3ccd2f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#ae81f5fe95bd0a2ad570a273a4e3ccd2f">afterRegionClear</a> (const <a class="el" href="a00831.html">RegionEvent</a> &amp;event)</td></tr>
<tr class="memdesc:ae81f5fe95bd0a2ad570a273a4e3ccd2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the event of a region being cleared. <a href="#ae81f5fe95bd0a2ad570a273a4e3ccd2f">More...</a><br /></td></tr>
<tr class="separator:ae81f5fe95bd0a2ad570a273a4e3ccd2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae95e119b2f9d75b82df75afedb5a140c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#ae95e119b2f9d75b82df75afedb5a140c">afterRegionDestroy</a> (const <a class="el" href="a00831.html">RegionEvent</a> &amp;event)</td></tr>
<tr class="memdesc:ae95e119b2f9d75b82df75afedb5a140c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the event of a region being destroyed. <a href="#ae95e119b2f9d75b82df75afedb5a140c">More...</a><br /></td></tr>
<tr class="separator:ae95e119b2f9d75b82df75afedb5a140c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae61aef93325875948385c2b8c46fa2f7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#ae61aef93325875948385c2b8c46fa2f7">afterRegionDisconnected</a> (<a class="el" href="a00815.html">Region</a> &amp;region)</td></tr>
<tr class="memdesc:ae61aef93325875948385c2b8c46fa2f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when all the endpoints assosiated with region are down. <a href="#ae61aef93325875948385c2b8c46fa2f7">More...</a><br /></td></tr>
<tr class="separator:ae61aef93325875948385c2b8c46fa2f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6e1fd0a48407e6bfb4242784fc2ca4a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#ad6e1fd0a48407e6bfb4242784fc2ca4a">afterRegionInvalidate</a> (const <a class="el" href="a00831.html">RegionEvent</a> &amp;event)</td></tr>
<tr class="memdesc:ad6e1fd0a48407e6bfb4242784fc2ca4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the event of a region being invalidated. <a href="#ad6e1fd0a48407e6bfb4242784fc2ca4a">More...</a><br /></td></tr>
<tr class="separator:ad6e1fd0a48407e6bfb4242784fc2ca4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43be918c591a12b2e856929093864e87"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#a43be918c591a12b2e856929093864e87">afterRegionLive</a> (const <a class="el" href="a00831.html">RegionEvent</a> &amp;event)</td></tr>
<tr class="memdesc:a43be918c591a12b2e856929093864e87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the event of a region being live. <a href="#a43be918c591a12b2e856929093864e87">More...</a><br /></td></tr>
<tr class="separator:a43be918c591a12b2e856929093864e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90b9e1372e3586b1fcd4161912df3983"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#a90b9e1372e3586b1fcd4161912df3983">afterUpdate</a> (const <a class="el" href="a00459.html">EntryEvent</a> &amp;event)</td></tr>
<tr class="memdesc:a90b9e1372e3586b1fcd4161912df3983"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the event of an entry's value being modified in a region. <a href="#a90b9e1372e3586b1fcd4161912df3983">More...</a><br /></td></tr>
<tr class="separator:a90b9e1372e3586b1fcd4161912df3983"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac67aef7caacdff836692746c8aeba685"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#ac67aef7caacdff836692746c8aeba685">close</a> (<a class="el" href="a00815.html">Region</a> &amp;region)</td></tr>
<tr class="memdesc:ac67aef7caacdff836692746c8aeba685"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the region containing this callback is destroyed, when the cache is closed. <a href="#ac67aef7caacdff836692746c8aeba685">More...</a><br /></td></tr>
<tr class="separator:ac67aef7caacdff836692746c8aeba685"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe6cbd23489eff24165fb685480aa7dd"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#afe6cbd23489eff24165fb685480aa7dd">~CacheListener</a> ()</td></tr>
<tr class="memdesc:afe6cbd23489eff24165fb685480aa7dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">public methods <a href="#afe6cbd23489eff24165fb685480aa7dd">More...</a><br /></td></tr>
<tr class="separator:afe6cbd23489eff24165fb685480aa7dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a03304207bc183bf05337af84ebceb3cd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00375.html#a03304207bc183bf05337af84ebceb3cd">CacheListener</a> ()</td></tr>
<tr class="memdesc:a03304207bc183bf05337af84ebceb3cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructors <a href="#a03304207bc183bf05337af84ebceb3cd">More...</a><br /></td></tr>
<tr class="separator:a03304207bc183bf05337af84ebceb3cd"><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>An application plug-in that can be installed on a region. </p>
<p>Listeners are change notifications that are invoked AFTER the change has occured for region update operations on a client. Listeners also receive notifications when entries in a region are modified. Multiple events can cause concurrent invocation of <code><a class="el" href="a00375.html" title="An application plug-in that can be installed on a region.">CacheListener</a></code> methods. If event A occurs before event B, there is no guarantee that their corresponding <code><a class="el" href="a00375.html" title="An application plug-in that can be installed on a region.">CacheListener</a></code> method invocations will occur in the same order. Any exceptions thrown by the listener are caught by Geode and logged. If the exception is due to listener invocation on the same thread where a region operation has been performed, then a <code><a class="el" href="a00655.html" title="Thrown when the cache listener throws an exception.">CacheListenerException</a></code> is thrown back to the application. If the exception is for a notification received from server then that is logged and the notification thread moves on to receiving other notifications.</p>
<p>There are two cases in which listeners are invoked. The first is when a region modification operation (e.g. put, create, destroy, invalidate) is performed. For this case it is important to ensure that minimal work is done in the listener before returning control back to Geode since the operation will block till the listener has not completed. For example, a listener implementation may choose to hand off the event to a thread pool that then processes the event on its thread rather than the listener thread. The second is when notifications are received from java server as a result of region register interest calls (<code><a class="el" href="a00815.html#a5f9a5fcce916d2e353d0da6c72fb8695" title="Registers an array of keys for getting updates from the server.">Region::registerKeys</a></code> etc), or invalidate notifications when notify-by-subscription is false on the server. In this case the methods of <code><a class="el" href="a00375.html" title="An application plug-in that can be installed on a region.">CacheListener</a></code> are invoked asynchronously (i.e. does not block the thread that receives notification messages). Additionally for the latter case of notifications from server, listener is always invoked whether or not local operation is successful e.g. if a destroy notification is received and key does not exist in the region, the listener will still be invoked. This is different from the first case where listeners are invoked only when the region update operation succeeds.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00823.html#af04565f2dfeee25f1589293c00cdf2ae" title="Sets the CacheListener for the next RegionAttributes created.">RegionAttributesFactory::setCacheListener</a> </dd>
<dd>
<a class="el" href="a00819.html#a0559c5d8f55046ac81548c7d4592859e" title="Gets the cache listener for the region.">RegionAttributes::getCacheListener</a> </dd>
<dd>
<a class="el" href="a00655.html" title="Thrown when the cache listener throws an exception.">CacheListenerException</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="afe6cbd23489eff24165fb685480aa7dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe6cbd23489eff24165fb685480aa7dd">&#9670;&nbsp;</a></span>~CacheListener()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual apache::geode::client::CacheListener::~CacheListener </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>public methods </p>
<p>destructor </p>
</div>
</div>
<a id="a03304207bc183bf05337af84ebceb3cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03304207bc183bf05337af84ebceb3cd">&#9670;&nbsp;</a></span>CacheListener()</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::CacheListener::CacheListener </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>constructors </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a08132e78c6431f81bd4ddc7f1a87cc44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08132e78c6431f81bd4ddc7f1a87cc44">&#9670;&nbsp;</a></span>afterCreate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::afterCreate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00459.html">EntryEvent</a> &amp;&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles the event of a new key being added to a region. </p>
<p>The entry did not previously exist in this region in the local cache (even with a nullptr value).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">event</td><td>denotes the event object associated with the entry creation This function does not throw any exception. </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00815.html#a8929dcdb782d03cfc85fdeb8c2124d40" title="Creates a new entry in this region with the specified key and value, providing a user-defined paramet...">Region::create</a> </dd>
<dd>
<a class="el" href="a00815.html#a6d37f770f04349d9c06799ab2ea4329e" title="Places a new value into an entry in this region with the specified key, providing a user-defined para...">Region::put</a> </dd>
<dd>
<a class="el" href="a00815.html#a4423292be4f114db87bc14bcf026a9f7" title="Returns the value associated with the specified key, passing the callback argument to any cache loade...">Region::get</a> </dd></dl>
</div>
</div>
<a id="ae25df9bc72e208023068fd4f193d4224"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae25df9bc72e208023068fd4f193d4224">&#9670;&nbsp;</a></span>afterDestroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::afterDestroy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00459.html">EntryEvent</a> &amp;&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles the event of an entry being destroyed. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">event</td><td><a class="el" href="a00459.html" title="Represents an entry event affecting an entry, including its identity and the the circumstances of the...">EntryEvent</a> denotes the event object associated with the entry destruction </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00815.html#a1330d8868efec3be5caa7bd04ce8f622" title="Destroys the entry with the specified key, and provides a user-defined parameter object to any CacheW...">Region::destroy</a> </dd></dl>
</div>
</div>
<a id="a42a3838742960796df2fb6668bf8d108"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42a3838742960796df2fb6668bf8d108">&#9670;&nbsp;</a></span>afterInvalidate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::afterInvalidate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00459.html">EntryEvent</a> &amp;&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles the event of an entry's value being invalidated. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">event</td><td><a class="el" href="a00459.html" title="Represents an entry event affecting an entry, including its identity and the the circumstances of the...">EntryEvent</a> denotes the event object associated with the entry invalidation </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae81f5fe95bd0a2ad570a273a4e3ccd2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae81f5fe95bd0a2ad570a273a4e3ccd2f">&#9670;&nbsp;</a></span>afterRegionClear()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::afterRegionClear </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00831.html">RegionEvent</a> &amp;&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles the event of a region being cleared. </p>
<p>Events are not invoked for each individual entry that is removed as a result of the region being cleared. Each subregion, however, gets its own <code>afterRegionClear</code> event invoked on its listener. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">event</td><td><a class="el" href="a00831.html" title="Declares region events.">RegionEvent</a> denotes the event object associated with the region removal </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00815.html#a3ef861ca25d90fcbbbf0b08049ba5944" title="Removes all entries from this region and provides a user-defined parameter object to any CacheWriter ...">Region::clear</a> </dd></dl>
</div>
</div>
<a id="ae95e119b2f9d75b82df75afedb5a140c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae95e119b2f9d75b82df75afedb5a140c">&#9670;&nbsp;</a></span>afterRegionDestroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::afterRegionDestroy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00831.html">RegionEvent</a> &amp;&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles the event of a region being destroyed. </p>
<p>Events are not invoked for each individual entry that is destroyed as a result of the region being destroyed. Each subregion, however, gets its own <code>afterRegionDestroyed</code> event invoked on its listener. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">event</td><td><a class="el" href="a00831.html" title="Declares region events.">RegionEvent</a> denotes the event object associated with the region destruction </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00815.html#a0e00376744c98bc9d2db341a865c69a3" title="Destroys the whole region and provides a user-defined parameter object to any CacheWriter invoked in ...">Region::destroyRegion</a> </dd></dl>
</div>
</div>
<a id="ae61aef93325875948385c2b8c46fa2f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae61aef93325875948385c2b8c46fa2f7">&#9670;&nbsp;</a></span>afterRegionDisconnected()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::afterRegionDisconnected </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00815.html">Region</a> &amp;&#160;</td>
<td class="paramname"><em>region</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when all the endpoints assosiated with region are down. </p>
<p>This will be called when all the endpoints are down for the first time. If endpoints come up and again go down it will be called again. This will also be called when all endpoints are down and region is attached to the pool. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">region</td><td>std::shared_ptr&lt;Region&gt; denotes the assosiated region. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ad6e1fd0a48407e6bfb4242784fc2ca4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6e1fd0a48407e6bfb4242784fc2ca4a">&#9670;&nbsp;</a></span>afterRegionInvalidate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::afterRegionInvalidate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00831.html">RegionEvent</a> &amp;&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles the event of a region being invalidated. </p>
<p>Events are not invoked for each individual value that is invalidated as a result of the region being invalidated. Each subregion, however, gets its own <code>regionInvalidated</code> event invoked on its listener. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">event</td><td><a class="el" href="a00831.html" title="Declares region events.">RegionEvent</a> denotes the event object associated with the region invalidation </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00815.html#a7b8c7859dda52ac8d4c8400181a9b255" title="Invalidates this region.">Region::invalidateRegion</a> </dd></dl>
</div>
</div>
<a id="a43be918c591a12b2e856929093864e87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43be918c591a12b2e856929093864e87">&#9670;&nbsp;</a></span>afterRegionLive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::afterRegionLive </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00831.html">RegionEvent</a> &amp;&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles the event of a region being live. </p>
<p>This event will be invoked after processing all the past messages. Each subregion, however, gets its own <code>afterRegionLive</code> event invoked on its listener. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">event</td><td><a class="el" href="a00831.html" title="Declares region events.">RegionEvent</a> denotes the associated event object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a90b9e1372e3586b1fcd4161912df3983"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90b9e1372e3586b1fcd4161912df3983">&#9670;&nbsp;</a></span>afterUpdate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::afterUpdate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="a00459.html">EntryEvent</a> &amp;&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles the event of an entry's value being modified in a region. </p>
<p>This entry previously existed in this region in the local cache, but its previous value may have been nullptr.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">event</td><td><a class="el" href="a00459.html" title="Represents an entry event affecting an entry, including its identity and the the circumstances of the...">EntryEvent</a> denotes the event object associated with updating the entry </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00815.html#a6d37f770f04349d9c06799ab2ea4329e" title="Places a new value into an entry in this region with the specified key, providing a user-defined para...">Region::put</a> </dd></dl>
</div>
</div>
<a id="ac67aef7caacdff836692746c8aeba685"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac67aef7caacdff836692746c8aeba685">&#9670;&nbsp;</a></span>close()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void apache::geode::client::CacheListener::close </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00815.html">Region</a> &amp;&#160;</td>
<td class="paramname"><em>region</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when the region containing this callback is destroyed, when the cache is closed. </p>
<p>Implementations should clean up any external resources, such as database connections. Any runtime exceptions this method throws will be logged.</p>
<p>It is possible for this method to be called multiple times on a single callback instance, so implementations must be tolerant of this.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00287.html#a709c65fc2cd45f67ce3d6603df9bc7f1" title="Terminates this object cache and releases all the local resources.">Cache::close</a> </dd>
<dd>
<a class="el" href="a00815.html#a0e00376744c98bc9d2db341a865c69a3" title="Destroys the whole region and provides a user-defined parameter object to any CacheWriter invoked in ...">Region::destroyRegion</a> </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>