## org.w3c.jigsaw.filters
Class AccessLimitFilter

    java.lang.Object
      |
      +--org.w3c.tools.resources.AttributeHolder
            |
            +--org.w3c.tools.resources.Resource
                  |
                  +--org.w3c.tools.resources.FramedResource
                        |
                        +--org.w3c.tools.resources.ResourceFrame
                              |
                              +--org.w3c.tools.resources.ResourceFilter
                                    |
                                    +--org.w3c.jigsaw.filters.AccessLimitFilter

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`

Fields inherited from class org.w3c.tools.resources.AttributeHolder
`attributes, slowpickle, 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, lookup, outgoingFilter, outputFilter`

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, 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, updateAttributes`

Methods inherited from class org.w3c.tools.resources.AttributeHolder
`definesAttribute, definesAttribute, getAttributes, getBoolean, getChar, getClone, getClone, getDouble, getFloat, getInt, getLong, getString, getValue, initialize, lookupAttribute, pickle, print, setBoolean, setChar, setDouble, setFloat, setInt, setLong, setString, setValue, unpickle, unpickle, unpickle, unpickleInstance, unpickleInstance`

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.
  Parameters:
    `request` - The request to be handled.
  Throws:
    HTTPException - if access limit is reached.
  Overrides:
    ingoingFilter in class ResourceFilter

### 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.
  Parameters:
    `request` - The request being handled.
    `reply` - The reply to be emited.
  Overrides:
    outgoingFilter in class ResourceFilter