VMware Tanzu GemFire Native .NET Reference 10.3.0
Apache::Geode::Client::ICacheListener< TKey, TValue > Interface Template Reference

An application plug-in that can be installed on a region. More...

#include <ICacheListener.hpp>

Inherited by Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.

Public Member Functions

void AfterCreate (EntryEvent< TKey, TValue >^ ev)
 Handles the event of a new key being added to a region. More...
 
void AfterDestroy (EntryEvent< TKey, TValue >^ ev)
 Handles the event of an entry being destroyed. More...
 
void AfterInvalidate (EntryEvent< TKey, TValue >^ ev)
 Handles the event of an entry's value being invalidated. More...
 
void AfterRegionClear (RegionEvent< TKey, TValue >^ ev)
 Handles the event of a region being cleared. More...
 
void AfterRegionDestroy (RegionEvent< TKey, TValue >^ ev)
 Handles the event of a region being destroyed. More...
 
void AfterRegionInvalidate (RegionEvent< TKey, TValue >^ ev)
 Handles the event of a region being invalidated. More...
 
void AfterRegionLive (RegionEvent< TKey, TValue >^ ev)
 Handles the event of a region going live. More...
 
void AfterUpdate (EntryEvent< TKey, TValue >^ ev)
 Handles the event of an entry's value being modified in a region. More...
 
void Close (IRegion< TKey, TValue >^ region)
 Called when the region containing this callback is destroyed, when the cache is closed. More...
 

Detailed Description

template<class TKey, class TValue>
interface Apache::Geode::Client::ICacheListener< TKey, TValue >

An application plug-in that can be installed on a region.

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 ICacheListener methods. If event A occurs before event B, there is no guarantee that their corresponding ICacheListener 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 CacheListenerException 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.

A cache listener is defined in the RegionAttributes.

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 (Region.RegisterKeys etc), or invalidate notifications when notify-by-subscription is false on the server. In this case the methods of ICacheListener 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.

See also
RegionAttributesFactory.SetCacheListener, RegionAttributes.CacheListener, ICacheLoader, ICacheWriter, CacheListenerException

Member Function Documentation

◆ AfterCreate()

template<class TKey , class TValue >
void Apache::Geode::Client::ICacheListener< TKey, TValue >::AfterCreate ( EntryEvent< TKey, TValue >^  ev)

Handles the event of a new key being added to a region.

The entry did not previously exist in this region in the local cache (even with a null value).

This function does not throw any exception.

Parameters
evDenotes the event object associated with the entry creation.
See also
Region.Create, Region.Put, Region.Get

Implemented in Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.

◆ AfterDestroy()

template<class TKey , class TValue >
void Apache::Geode::Client::ICacheListener< TKey, TValue >::AfterDestroy ( EntryEvent< TKey, TValue >^  ev)

Handles the event of an entry being destroyed.

Parameters
evEntryEvent denotes the event object associated with the entry destruction.
See also
Region.Destroy

Implemented in Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.

◆ AfterInvalidate()

template<class TKey , class TValue >
void Apache::Geode::Client::ICacheListener< TKey, TValue >::AfterInvalidate ( EntryEvent< TKey, TValue >^  ev)

Handles the event of an entry's value being invalidated.

Parameters
evEntryEvent denotes the event object associated with the entry invalidation.

Implemented in Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.

◆ AfterRegionClear()

template<class TKey , class TValue >
void Apache::Geode::Client::ICacheListener< TKey, TValue >::AfterRegionClear ( RegionEvent< TKey, TValue >^  ev)

Handles the event of a region being cleared.

Implemented in Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.

◆ AfterRegionDestroy()

template<class TKey , class TValue >
void Apache::Geode::Client::ICacheListener< TKey, TValue >::AfterRegionDestroy ( RegionEvent< TKey, TValue >^  ev)

Handles the event of a region being destroyed.

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 AfterRegionDestroyed event invoked on its listener.

Parameters
evRegionEvent denotes the event object associated with the region destruction.
See also
Region.DestroyRegion

Implemented in Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.

◆ AfterRegionInvalidate()

template<class TKey , class TValue >
void Apache::Geode::Client::ICacheListener< TKey, TValue >::AfterRegionInvalidate ( RegionEvent< TKey, TValue >^  ev)

Handles the event of a region being invalidated.

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 RegionInvalidated event invoked on its listener.

Parameters
evRegionEvent denotes the event object associated with the region invalidation.
See also
Region.InvalidateRegion

Implemented in Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.

◆ AfterRegionLive()

template<class TKey , class TValue >
void Apache::Geode::Client::ICacheListener< TKey, TValue >::AfterRegionLive ( RegionEvent< TKey, TValue >^  ev)

Handles the event of a region going live.

Each subregion gets its own AfterRegionLive event invoked on its listener.

Parameters
evRegionEvent denotes the event object associated with the region going live.
See also
Cache.ReadyForEvents

Implemented in Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.

◆ AfterUpdate()

template<class TKey , class TValue >
void Apache::Geode::Client::ICacheListener< TKey, TValue >::AfterUpdate ( EntryEvent< TKey, TValue >^  ev)

Handles the event of an entry's value being modified in a region.

This entry previously existed in this region in the local cache, but its previous value may have been null.

Parameters
evEntryEvent denotes the event object associated with updating the entry.
See also
Region.Put

Implemented in Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.

◆ Close()

template<class TKey , class TValue >
void Apache::Geode::Client::ICacheListener< TKey, TValue >::Close ( IRegion< TKey, TValue >^  region)

Called when the region containing this callback is destroyed, when the cache is closed.

Implementations should clean up any external resources, such as database connections. Any runtime exceptions this method throws will be logged.

It is possible for this method to be called multiple times on a single callback instance, so implementations must be tolerant of this.

See also
Cache.Close, Region.DestroyRegion

summary> Called when all the endpoints associated with region are down. 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. /summary> remarks> /remark> param> region Region^ denotes the assosiated region. /param>

Implemented in Apache::Geode::Client::CacheListenerAdapter< TKey, TValue >.


Apache Geode C++ Cache .NET API Documentation