Class CacheManager
java.lang.Object
sunlabs.brazil.session.SessionManager
sunlabs.brazil.session.CacheManager
- All Implemented Interfaces:
Handler
- Direct Known Subclasses:
PropertiesCacheManager
This
SessionManager associates an object with a Session ID
to give Handlers the ability to maintain state that lasts for the
duration of a session instead of just for the duration of a request.
It should be installed as a handler, whoses init method will replace
the default session manager.
This version maintains a pool of hashtables. Once they all fill up - one of them gets tossed, causing any session info in it to be lost. It uses a simplified approximate LRU scheme. The default session manager doesn't loose any session information, but grows the heap without bound as the number of sessions increase.
properties:
- tables
- The number of Hashtables in the pool (defaults to 6)
- size
- The max number of entries in each table (defaults to 1000).
- Version:
- %V% CacheManager.java
- Author:
- Stephen Uhler (stephen.uhler@sun.com)
-
Field Summary
Fields inherited from class SessionManager
sessions -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidflush()The active hashtable is too big, find the hashtable with the worst Score, clear it, and set it as the active table.protected ObjectReturns the object associated with the given Session ID and ident.booleanInstall this class as the session manager.protected StringInvent a single key from the 2 separate onesprotected voidAssociates an object with a session id and ident.protected voidvoidRemove an object from a session table.booleanDon't handle any URL requests (yet)Methods inherited from class SessionManager
get, getSession, put, remove, setSessionManager
-
Constructor Details
-
CacheManager
public CacheManager()
-
-
Method Details
-
init
Install this class as the session manager. Get the number of tables, and the max size per table.- Specified by:
initin interfaceHandler- Parameters:
server- The HTTP server that created thisHandler. TypicalHandlers will useServer.propsto obtain run-time configuration information.prefix- The handlers name. The string thisHandlermay prepend to all of the keys that it uses to extract configuration information fromServer.props. This is set (by theServerandChainHandler) to help avoid configuration parameter namespace collisions.- Returns:
trueif thisHandlerinitialized successfully,falseotherwise. Iffalseis returned, thisHandlershould not be used.
-
respond
Don't handle any URL requests (yet) -
getObj
Description copied from class:SessionManagerReturns the object associated with the given Session ID and ident.- Overrides:
getObjin classSessionManager
-
putObj
-
putObj
Description copied from class:SessionManagerAssociates an object with a session id and ident. "value" may not be null.- Overrides:
putObjin classSessionManager
-
removeObj
Remove an object from a session table. Don't bother to remove the table if its empty- Overrides:
removeObjin classSessionManager
-
flush
protected void flush()The active hashtable is too big, find the hashtable with the worst Score, clear it, and set it as the active table. -
makeKey
Invent a single key from the 2 separate ones- Overrides:
makeKeyin classSessionManager
-