wt.project
Class ProjectCache

java.lang.Object
  extended byjava.rmi.server.RemoteObject
      extended byjava.rmi.server.RemoteServer
          extended bywt.util.RMIServer
              extended bywt.cache.CacheManager
                  extended bywt.project.ProjectCache
All Implemented Interfaces:
CacheServer, Remote, Serializable, Unreferenced

public class ProjectCache
extends CacheManager

This class implements a Project cache service. It follows the 2-level cache paradigm. Creation and updates to Projects must be communicated to the cache by the Services manager.

See Also:
Serialized Form

Nested Class Summary
static class ProjectCache.ProjectCacheReporter
           
 
Field Summary
private static int CACHESIZE
           
private static ProjectCache projectCache
           
private static Vector rNames
           
private static boolean VERBOSE
           
private static String versionID
           
 
Fields inherited from class wt.cache.CacheManager
MASTER
 
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
 
Constructor Summary
ProjectCache()
          Do not directly invoke this constructor! Use getProjectCache instead.
 
Method Summary
protected  void clear()
           
 int getDefaultSize()
          Get desired size of this cache.
 Enumeration getEntries()
          Return a sorted enumeration of all ProjectReferences
static ProjectCache getProjectCache()
          Contruct a new Project cache.
static void main(String[] args)
           
protected  void populateCache()
           
 void Print()
           
 void putEntry(Object key, Object value)
          Overrides CacheManager.putEntry to do nothing so that no entries are added to the wt.util.Cache object contained in CacheManager.
protected  void removeEntry(Object target)
          Simply clear local cache when signalled.
 void reset()
          Method called when connection to master cache is broken and recovered indicating that a notification from another project cache might have been missed.
 
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

versionID

private static final String versionID
See Also:
Constant Field Values

rNames

private static Vector rNames

projectCache

private static ProjectCache projectCache

VERBOSE

private static final boolean VERBOSE

CACHESIZE

private static int CACHESIZE
Constructor Detail

ProjectCache

public ProjectCache()
             throws RemoteException
Do not directly invoke this constructor! Use getProjectCache instead. The constructor is public so that the ServerManager can create an instance of this class for use as the master cache.

However, since the master cache is only being used to signal slave caches, we don't want to construct any of the internal cache objects.

Method Detail

getProjectCache

public static ProjectCache getProjectCache()
Contruct a new Project cache.


removeEntry

protected void removeEntry(Object target)
Simply clear local cache when signalled. Will be repopulated on subsequent requests

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

getEntries

public Enumeration getEntries()
                       throws WTException
Return a sorted enumeration of all ProjectReferences

Throws:
WTException

putEntry

public void putEntry(Object key,
                     Object value)
Overrides CacheManager.putEntry to do nothing so that no entries are added to the wt.util.Cache object contained in CacheManager.

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

getDefaultSize

public int getDefaultSize()
Description copied from class: CacheManager
Get desired size of this cache. This method attemps to find a size property called wt.cache.size.CacheName where cacheName is the name of this cache. Subclasses can override this method to control cache size in some other way. If no property is found, the default size is 100.

Supported API: true

Overrides:
getDefaultSize in class CacheManager

populateCache

protected void populateCache()
                      throws WTException
Throws:
WTException

clear

protected void clear()

reset

public void reset()
Method called when connection to master cache is broken and recovered indicating that a notification from another project cache might have been missed. The current cache is cleared and reinitialized later.

Overrides:
reset in class CacheManager

Print

public void Print()

main

public static void main(String[] args)