wt.cache
Class Messenger

java.lang.Object
  extended byjava.rmi.server.RemoteObject
      extended byjava.rmi.server.RemoteServer
          extended bywt.util.RMIServer
              extended bywt.cache.CacheManager
                  extended bywt.cache.Messenger
All Implemented Interfaces:
CacheServer, Remote, Serializable, Unreferenced
Direct Known Subclasses:
ContainerPathCache.PathToContainerMessenger, DefaultFolderCache.FolderCacheMessenger, DefaultFolderCache.WindchillPDMMessenger, OrganizationCache.DomainToOrgMessenger, OrganizationCache.OrgToContainerMessenger, ReferenceCache.ObjectReferenceCacheMessenger, SeriesCache.ContextMessenger

public abstract class Messenger
extends CacheManager

Provides a CacheManager that is only used for message passing. Objects that want to be notified of messages can register a MessageReceiver with the Messenger. Objects that want to send messages should use the sendMessage(Object) API.

Supported API: false

Extendable: false

See Also:
Serialized Form

Nested Class Summary
static interface Messenger.MessageReceiver
          Implementors can register with a Messenger to receive messages.
 
Field Summary
private static Messenger.MessageReceiver[] EMPTY_RECEIVERS
           
private  Messenger.MessageReceiver[] receivers
           
 
Fields inherited from class wt.cache.CacheManager
id, MARSHAL_RETRY, MASTER, MASTER_MONITOR_INTERVAL, name, OTHER_RETRY, slaves, VERBOSE_SERVER
 
Fields inherited from class wt.util.RMIServer
csf, ssf
 
Fields inherited from class java.rmi.server.RemoteServer
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Fields inherited from interface wt.cache.CacheServer
versionID
 
Constructor Summary
Messenger()
           
 
Method Summary
 void addReceiver(Messenger.MessageReceiver receiver)
           
 int getDefaultSize()
          Overridden to return zero since the Messenger stores no mappings
protected  void putEntry(Object key, Object value)
          Overridden to do nothing since the Messenger stores no mappings
protected  void removeEntry(Object key)
          Notifies registered receivers of the given message.
 void removeReceiver(Messenger.MessageReceiver receiver)
           
 void reset()
          To clear the cache, callers should call remove(null) not reset
 void sendMessage(Object msg)
          Notify remote caches of the given message.
 
Methods inherited from class wt.cache.CacheManager
checkAccess, get, getDefaultName, getEntry, isCacheHost, overflow, ping, put, putEntry, reference, registerSlave, remove, remove, removeEntry, unreferenced, update, updateEntry, updateEntry
 
Methods inherited from class wt.util.RMIServer
clone, exportObject, exportObject, exportObject, getClientSocketFactory, getPort, getServerSocketFactory, getStub, isHostInList, isLocalHost, setPort, writeReplace
 
Methods inherited from class java.rmi.server.RemoteServer
getClientHost, getLog, setLog
 
Methods inherited from class java.rmi.server.RemoteObject
equals, getRef, hashCode, toString, toStub
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EMPTY_RECEIVERS

private static final Messenger.MessageReceiver[] EMPTY_RECEIVERS

receivers

private volatile Messenger.MessageReceiver[] receivers
Constructor Detail

Messenger

public Messenger()
          throws RemoteException
Method Detail

sendMessage

public void sendMessage(Object msg)
Notify remote caches of the given message. This will end up calling removeEntry on the remote caches.


getDefaultSize

public int getDefaultSize()
Overridden to return zero since the Messenger stores no mappings

Overrides:
getDefaultSize in class CacheManager

putEntry

protected void putEntry(Object key,
                        Object value)
Overridden to do nothing since the Messenger stores no mappings

Overrides:
putEntry in class CacheManager
Parameters:
key - the key object
value - the value object

removeEntry

protected void removeEntry(Object key)
Notifies registered receivers of the given message.

Overrides:
removeEntry in class CacheManager
Parameters:
key - the key object (null = clear entire cache)

reset

public final void reset()
                 throws RemoteException
To clear the cache, callers should call remove(null) not reset

Overrides:
reset in class CacheManager
Throws:
RemoteException

addReceiver

public void addReceiver(Messenger.MessageReceiver receiver)

removeReceiver

public void removeReceiver(Messenger.MessageReceiver receiver)