org.apache.jcs.auxiliary.lateral.socket.tcp
Class LateralTCPListener

java.lang.Object
  extended by org.apache.jcs.auxiliary.lateral.socket.tcp.LateralTCPListener
All Implemented Interfaces:
java.io.Serializable, ILateralCacheListener, ICacheListener

public class LateralTCPListener
extends java.lang.Object
implements ILateralCacheListener, java.io.Serializable

Listens for connections from other TCP lateral caches and handles them. The initialization method starts a listening thread, which creates a socket server. When messages are received they are passed to a pooled executor which then calls the appropriate handle method.

See Also:
Serialized Form

Nested Class Summary
 class LateralTCPListener.ConnectionHandler
          A Separate thread taht runs when a command comes into the LateralTCPReceiver.
 class LateralTCPListener.ListenerThread
          Processes commands from the server socket.
 
Field Summary
protected static java.util.HashMap instances
          Map of available instances, keyed by port
 
Constructor Summary
protected LateralTCPListener(ITCPLateralCacheAttributes ilca)
          Only need one since it does work for all regions, just reference by multiple region names.
 
Method Summary
protected  CompositeCache getCache(java.lang.String name)
          Gets the cacheManager attribute of the LateralCacheTCPListener object.
 ICompositeCacheManager getCacheManager()
           
 int getGetCnt()
           
static ILateralCacheListener getInstance(ITCPLateralCacheAttributes ilca, ICompositeCacheManager cacheMgr)
          Gets the instance attribute of the LateralCacheTCPListener class.
 long getListenerId()
          Gets the listenerId attribute of the LateralCacheTCPListener object
 int getPutCnt()
          This is roughly the number of updates the lateral has received.
 int getRemoveCnt()
           
 ITCPLateralCacheAttributes getTcpLateralCacheAttributes()
           
 void handleDispose(java.lang.String cacheName)
          Right now this does nothing.
 java.io.Serializable handleGet(java.lang.String cacheName, java.io.Serializable key)
          Gets the cache that was injected by the lateral factory.
 java.util.Map handleGetMatching(java.lang.String cacheName, java.lang.String pattern)
          Gets the cache that was injected by the lateral factory.
 void handlePut(ICacheElement element)
          Increments the put count.
 void handleRemove(java.lang.String cacheName, java.io.Serializable key)
          Increments the remove count.
 void handleRemoveAll(java.lang.String cacheName)
          Gets the cache that was injected by the lateral factory.
 void init()
          This starts the ListenerThread on the specified port.
 void setCacheManager(ICompositeCacheManager cacheMgr)
           
 void setListenerId(long id)
          Let the lateral cache set a listener_id.
 void setTcpLateralCacheAttributes(ITCPLateralCacheAttributes tcpLateralCacheAttributes)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

instances

protected static final java.util.HashMap instances
Map of available instances, keyed by port

Constructor Detail

LateralTCPListener

protected LateralTCPListener(ITCPLateralCacheAttributes ilca)
Only need one since it does work for all regions, just reference by multiple region names.

Parameters:
ilca -
Method Detail

getInstance

public static ILateralCacheListener getInstance(ITCPLateralCacheAttributes ilca,
                                                ICompositeCacheManager cacheMgr)
Gets the instance attribute of the LateralCacheTCPListener class.

Parameters:
ilca - ITCPLateralCacheAttributes
cacheMgr -
Returns:
The instance value

init

public void init()
This starts the ListenerThread on the specified port.

Specified by:
init in interface ILateralCacheListener

setListenerId

public void setListenerId(long id)
                   throws java.io.IOException
Let the lateral 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.

By default, the listener id is the vmid.

The service should set this value. This value will never be changed by a server we connect to. It needs to be non static, for unit tests.

The service will use the value it sets in all send requests to the sender.

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

getListenerId

public long getListenerId()
                   throws java.io.IOException
Gets the listenerId attribute of the LateralCacheTCPListener object

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

handlePut

public void handlePut(ICacheElement element)
               throws java.io.IOException
Increments the put count. Gets the cache that was injected by the lateral factory. Calls put on the cache.

Specified by:
handlePut in interface ICacheListener
Throws:
java.io.IOException
See Also:
ICacheListener.handlePut(org.apache.jcs.engine.behavior.ICacheElement)

handleRemove

public void handleRemove(java.lang.String cacheName,
                         java.io.Serializable key)
                  throws java.io.IOException
Increments the remove count. Gets the cache that was injected by the lateral factory. Calls remove on the cache.

Specified by:
handleRemove in interface ICacheListener
Throws:
java.io.IOException
See Also:
ICacheListener.handleRemove(java.lang.String, java.io.Serializable)

handleRemoveAll

public void handleRemoveAll(java.lang.String cacheName)
                     throws java.io.IOException
Gets the cache that was injected by the lateral factory. Calls removeAll on the cache.

Specified by:
handleRemoveAll in interface ICacheListener
Throws:
java.io.IOException
See Also:
ICacheListener.handleRemoveAll(java.lang.String)

handleGet

public java.io.Serializable handleGet(java.lang.String cacheName,
                                      java.io.Serializable key)
                               throws java.io.IOException
Gets the cache that was injected by the lateral factory. Calls get on the cache.

Parameters:
cacheName -
key -
Returns:
Serializable
Throws:
java.io.IOException

handleGetMatching

public java.util.Map handleGetMatching(java.lang.String cacheName,
                                       java.lang.String pattern)
                                throws java.io.IOException
Gets the cache that was injected by the lateral factory. Calls get on the cache.

Parameters:
cacheName -
pattern -
Returns:
Map
Throws:
java.io.IOException

handleDispose

public void handleDispose(java.lang.String cacheName)
                   throws java.io.IOException
Right now this does nothing.

Specified by:
handleDispose in interface ICacheListener
Throws:
java.io.IOException
See Also:
ICacheListener.handleDispose(java.lang.String)

getCache

protected CompositeCache getCache(java.lang.String name)
Gets the cacheManager attribute of the LateralCacheTCPListener object.

Normally this is set by the factory. If it wasn't set the listener defaults to the expected singleton behavior of the cache amanger.

Parameters:
name -
Returns:
CompositeCache

getPutCnt

public int getPutCnt()
This is roughly the number of updates the lateral has received.

Returns:
Returns the putCnt.

getGetCnt

public int getGetCnt()
Returns:
Returns the getCnt.

getRemoveCnt

public int getRemoveCnt()
Returns:
Returns the removeCnt.

setCacheManager

public void setCacheManager(ICompositeCacheManager cacheMgr)
Specified by:
setCacheManager in interface ILateralCacheListener
Parameters:
cacheMgr - The cacheMgr to set.

getCacheManager

public ICompositeCacheManager getCacheManager()
Specified by:
getCacheManager in interface ILateralCacheListener
Returns:
Returns the cacheMgr.

setTcpLateralCacheAttributes

public void setTcpLateralCacheAttributes(ITCPLateralCacheAttributes tcpLateralCacheAttributes)
Parameters:
tcpLateralCacheAttributes - The tcpLateralCacheAttributes to set.

getTcpLateralCacheAttributes

public ITCPLateralCacheAttributes getTcpLateralCacheAttributes()
Returns:
Returns the tcpLateralCacheAttributes.


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