org.apache.jcs.auxiliary.remote
Class RemoteCacheListener

java.lang.Object
  extended byorg.apache.jcs.auxiliary.remote.RemoteCacheListener
All Implemented Interfaces:
ICacheListener, IRemoteCacheConstants, IRemoteCacheListener, java.rmi.Remote, java.io.Serializable

public class RemoteCacheListener
extends java.lang.Object
implements IRemoteCacheListener, IRemoteCacheConstants, java.io.Serializable

Registered with RemoteCache server. The server updates the local caches via this listener. Each server asings a unique listener id for a listener.

See Also:
Serialized Form

Field Summary
protected static CompositeCacheManager cacheMgr
          The cache manager used to put items in differnt regions.
protected  IRemoteCacheAttributes irca
          The remote cache configuration object.
protected  long listenerId
          This is set by the remote cache server.
protected  int puts
          Number of put requests received
protected  int removes
          Number of remove requests received
 
Fields inherited from interface org.apache.jcs.auxiliary.remote.behavior.IRemoteCacheListener
CLIENT_LISTENER, SERVER_LISTENER
 
Fields inherited from interface org.apache.jcs.auxiliary.remote.behavior.IRemoteCacheConstants
REMOTE_ALLOW_CLUSTER_GET, REMOTE_CACHE_SERVICE_NAME, REMOTE_CACHE_SERVICE_PORT, REMOTE_CACHE_SERVICE_VAL, REMOTE_LOCAL_CLUSTER_CONSISTENCY, TOMCAT_ON, TOMCAT_XML
 
Constructor Summary
RemoteCacheListener(IRemoteCacheAttributes irca)
          Only need one since it does work for all regions, just reference by multiple region names.
 
Method Summary
protected  void getCacheManager()
          Gets the cacheManager attribute of the RemoteCacheListener object.
 long getListenerId()
          Gets the listenerId attribute of the RemoteCacheListener object.
 int getRemoteType()
          Gets the remoteType attribute of the RemoteCacheListener object
 void handleDispose(java.lang.String cacheName)
          Notifies the subscribers for freeing up the named cache.
 void handlePut(ICacheElement cb)
          Just remove the element since it has been updated elsewhere cd should be incomplete for faster transmission.
 void handleRemove(java.lang.String cacheName, java.io.Serializable key)
          Notifies the subscribers for a cache entry removal.
 void handleRemoveAll(java.lang.String cacheName)
          Notifies the subscribers for a cache remove-all.
 void setListenerId(long id)
          let the remote cache set a listener_id.
 java.lang.String toString()
          For easier debugging.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cacheMgr

protected static transient CompositeCacheManager cacheMgr
The cache manager used to put items in differnt regions. This is set lazily and should not be sent to the remote server.


irca

protected IRemoteCacheAttributes irca
The remote cache configuration object.


puts

protected int puts
Number of put requests received


removes

protected int removes
Number of remove requests received


listenerId

protected long listenerId
This is set by the remote cache server.

Constructor Detail

RemoteCacheListener

public RemoteCacheListener(IRemoteCacheAttributes irca)
Only need one since it does work for all regions, just reference by multiple region names. The constructor exports this object, making it available to receive incoming calls. The calback port is anonymous unless a local port vlaue was specified in the configurtion.

Parameters:
irca -
Method Detail

setListenerId

public void setListenerId(long id)
                   throws java.io.IOException
let the remote cache set a listener_id. Since there is only one listerenr for all the regions and every region gets registered? the id shouldn't be set if it isn't zero. If it is we assume that it is a reconnect.

Specified by:
setListenerId in interface IRemoteCacheListener
Parameters:
id - The new listenerId value
Throws:
java.io.IOException

getListenerId

public long getListenerId()
                   throws java.io.IOException
Gets the listenerId attribute of the RemoteCacheListener object. This is stored int he object. The RemoteCache object contains a reference to the listener and get the id this way.

Specified by:
getListenerId in interface IRemoteCacheListener
Returns:
The listenerId value
Throws:
java.io.IOException

getRemoteType

public int getRemoteType()
                  throws java.io.IOException
Gets the remoteType attribute of the RemoteCacheListener object

Specified by:
getRemoteType in interface IRemoteCacheListener
Returns:
The remoteType value
Throws:
java.io.IOException

handlePut

public void handlePut(ICacheElement cb)
               throws java.io.IOException
Just remove the element since it has been updated elsewhere cd should be incomplete for faster transmission. We don't want to pass data only invalidation. The next time it is used the local cache will get the new version from the remote store.

Specified by:
handlePut in interface ICacheListener
Parameters:
cb -
Throws:
java.io.IOException

handleRemove

public void handleRemove(java.lang.String cacheName,
                         java.io.Serializable key)
                  throws java.io.IOException
Description copied from interface: ICacheListener
Notifies the subscribers for a cache entry removal.

Specified by:
handleRemove in interface ICacheListener
Throws:
java.io.IOException

handleRemoveAll

public void handleRemoveAll(java.lang.String cacheName)
                     throws java.io.IOException
Description copied from interface: ICacheListener
Notifies the subscribers for a cache remove-all.

Specified by:
handleRemoveAll in interface ICacheListener
Throws:
java.io.IOException

handleDispose

public void handleDispose(java.lang.String cacheName)
                   throws java.io.IOException
Description copied from interface: ICacheListener
Notifies the subscribers for freeing up the named cache.

Specified by:
handleDispose in interface ICacheListener
Throws:
java.io.IOException

getCacheManager

protected void getCacheManager()
Gets the cacheManager attribute of the RemoteCacheListener object. This is one of the few places that force the cache to be a singleton.


toString

public java.lang.String toString()
For easier debugging.

Returns:
Basic info on this listener.


Copyright © 2002-2005 Apache Software Foundation. All Rights Reserved.