org.w3c.jigsaw.filters
Class AccessLimitFilter

java.lang.Object
  extended by org.w3c.tools.resources.AttributeHolder
      extended by org.w3c.tools.resources.Resource
          extended by org.w3c.tools.resources.FramedResource
              extended by org.w3c.tools.resources.ResourceFrame
                  extended by org.w3c.tools.resources.ResourceFilter
                      extended by org.w3c.jigsaw.filters.AccessLimitFilter
All Implemented Interfaces:
java.lang.Cloneable, java.util.EventListener, AttributeChangedListener, FrameEventListener, FilterInterface

public class AccessLimitFilter
extends ResourceFilter

This filters limit the simultaneous accesses to its target resource.


Field Summary
protected static int ATTR_LIMIT
          Attribute index - The maximum allowed simultaneous accesses.
protected static int ATTR_TIMEOUT
          Attribute index - The time to wait for the lock (if limit reached)
protected  int count
          Current number of requets that have reached the target.
 
Fields inherited from class org.w3c.tools.resources.ResourceFrame
filterClass, frameListener, resource
 
Fields inherited from class org.w3c.tools.resources.FramedResource
ATTR_OID, attrListener, debugEvent, event_disabled, framesRef, structListener
 
Fields inherited from class org.w3c.tools.resources.Resource
ATTR_CONTEXT, ATTR_HELP_URL, ATTR_IDENTIFIER, ATTR_LAST_MODIFIED, ATTR_PARENT, ATTR_RESOURCE_FRAMES, ATTR_STORE_ENTRY, ATTR_URL, co, id
 
Fields inherited from class org.w3c.tools.resources.AttributeHolder
attributes, values
 
Constructor Summary
AccessLimitFilter()
           
 
Method Summary
 int getLimit()
          Get the maximum number of allowed simultaneous accesses.
 int getTimeout()
          Get the timeout before we send back an error.
 ReplyInterface ingoingFilter(RequestInterface req)
          Count number of hits to the page, block when limit exceeded.
 ReplyInterface outgoingFilter(RequestInterface req, ReplyInterface rep)
          Notify that someone has exit the target entity.
 
Methods inherited from class org.w3c.tools.resources.ResourceFilter
exceptionFilter, getTargetResource, ingoingFilter, initialize, lookup, outgoingFilter, outputFilter, pickleValues
 
Methods inherited from class org.w3c.tools.resources.ResourceFrame
addFrameEventListener, attributeChanged, checkRequest, eventDisabled, fireFrameEvent, frameModified, getFilters, getFilters, getFrameReference, getResource, getResourceReference, getSpaceEntry, getURLPath, lookupFilters, lookupFrames, perform, postFrameEvent, processEvent, registerResource, removeFrameEventListener, setValue, unregisterResource, updateDefaultChildAttributes
 
Methods inherited from class org.w3c.tools.resources.FramedResource
addAttributeChangedListener, addStructureChangedListener, collectFramesReference, delete, disableEvent, displayEvent, enableEvent, fireAttributeChangeEvent, fireStructureChangedEvent, fireStructureChangedEvent, frameAdded, frameRemoved, getClone, getFrame, getFrame, getFrameReference, getFrameReference, getFramesReference, getOid, initialize, markModified, notifyUnload, performFrames, postAttributeChangeEvent, postEvent, postStructureChangedEvent, postStructureChangedEvent, registerFrame, registerFrameIfNone, removeAttributeChangedListener, removeStructureChangedListener, setSilentValue, setSilentValue, unregisterFrame
 
Methods inherited from class org.w3c.tools.resources.Resource
acceptUnload, checkMultipleLock, collectFrames, getContext, getFrame, getFrames, getHelpURL, getHelpURL, getIdentifier, getLastModified, getParent, getServer, getSpace, getStoreEntry, getValue, getValue, isInitialized, isUnloaded, setContext, setContext, setValue, unsafeGetContext, unsafeGetFrame, unsafeGetFrames, unsafeGetIdentifier, unsafeGetResourceReference, unsafeGetURLPath, unsafeGetValue, updateAttributes
 
Methods inherited from class org.w3c.tools.resources.AttributeHolder
definesAttribute, definesAttribute, getAttributes, getBoolean, getChar, getClone, getClone, getDouble, getFloat, getInt, getLong, getString, getValue, lookupAttribute, print, setBoolean, setChar, setDouble, setFloat, setInt, setLong, setString, setValue, unsafeDefinesAttribute, unsafeGetDouble, unsafeGetString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTR_LIMIT

protected static int ATTR_LIMIT
Attribute index - The maximum allowed simultaneous accesses.


ATTR_TIMEOUT

protected static int ATTR_TIMEOUT
Attribute index - The time to wait for the lock (if limit reached)


count

protected int count
Current number of requets that have reached the target.

Constructor Detail

AccessLimitFilter

public AccessLimitFilter()
Method Detail

getLimit

public int getLimit()
Get the maximum number of allowed simultaneous accesses.


getTimeout

public int getTimeout()
Get the timeout before we send back an error. A client will wait only for this duration before being thrown an error.


ingoingFilter

public ReplyInterface ingoingFilter(RequestInterface req)
                             throws HTTPException
Count number of hits to the page, block when limit exceeded. This filter maintains the actual number of hits to its target. When this number exceeds the predefined limit, it blocks the caller until some othre thread exits the target.

Overrides:
ingoingFilter in class ResourceFilter
Parameters:
request - The request to be handled.
Returns:
A Reply instance, or null if processing should continue normally.
Throws:
HTTPException - if access limit is reached.

outgoingFilter

public ReplyInterface outgoingFilter(RequestInterface req,
                                     ReplyInterface rep)
Notify that someone has exit the target entity. This method decrements the actual number of hits to the filter's target, and notify any awaiting threads that they can now enter safely.

Overrides:
outgoingFilter in class ResourceFilter
Parameters:
request - The request being handled.
reply - The reply to be emited.
Returns:
A Reply instance, or null if processing should continue normally.