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 void
flush()
The active hashtable is too big, find the hashtable with the worst Score, clear it, and set it as the active table.protected Object
Returns the object associated with the given Session ID and ident.boolean
Install this class as the session manager.protected String
Invent a single key from the 2 separate onesprotected void
Associates an object with a session id and ident.protected void
void
Remove an object from a session table.boolean
Don'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:
init
in interfaceHandler
- Parameters:
server
- The HTTP server that created thisHandler
. TypicalHandler
s will useServer.props
to obtain run-time configuration information.prefix
- The handlers name. The string thisHandler
may prepend to all of the keys that it uses to extract configuration information fromServer.props
. This is set (by theServer
andChainHandler
) to help avoid configuration parameter namespace collisions.- Returns:
true
if thisHandler
initialized successfully,false
otherwise. Iffalse
is returned, thisHandler
should not be used.
-
respond
Don't handle any URL requests (yet) -
getObj
Description copied from class:SessionManager
Returns the object associated with the given Session ID and ident.- Overrides:
getObj
in classSessionManager
-
putObj
-
putObj
Description copied from class:SessionManager
Associates an object with a session id and ident. "value" may not be null.- Overrides:
putObj
in classSessionManager
-
removeObj
Remove an object from a session table. Don't bother to remove the table if its empty- Overrides:
removeObj
in 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:
makeKey
in classSessionManager
-