## org.w3c.jigsaw.proxy
Class ForwardFrame

    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.ProtocolFrame
                                    |
                                    +--org.w3c.jigsaw.frames.HTTPFrame
                                          |
                                          +--org.w3c.jigsaw.proxy.ForwardFrame

Direct Known Subclasses:
  MirrorFrame, ProxyFrame

public class ForwardFrame
extends HTTPFrame

Field Summary
`protected static int` | `ATTR_LOCAL_ROOT` Attribute index - The local resource, if server-wide request.
`protected static int` | `ATTR_RECEIVED_BY` Attribute index - The received by attribute of that proxy.
`protected static int` | `ATTR_TRACEREQ` Attribute index - Try to trace how the request has been processed.
`int` | `cache_hits` Statistics - Number of hits.
`int` | `cache_icps` Statistics - Number of ICP redirects.
`int` | `cache_misses` Statistics - Number of misses.
`int` | `cache_nocache` Statistics - Number of requests that didn't use cache.
`int` | `cache_retrievals` Statistics - Number of successfull revalidations.
`int` | `cache_revalidations` Statistics - Number of successfull revalidations.
`protected ResourceReference` | `lroot` Get the local root resource to use for internal requests.
`protected HttpManager` | `manager` The HttpManager we use.
`int` | `reqcount` Statistics - Number of requests handled.
`int` | `reqerred` Statistics - Errors.

Fields inherited from class org.w3c.jigsaw.frames.HTTPFrame
`_allowed, acceptRanges, allowed, ATTR_ALLOW_DEL, ATTR_BROWSABLE, ATTR_CONTENT_ENCODING, ATTR_CONTENT_LANGUAGE, ATTR_CONTENT_LENGTH, ATTR_CONTENT_TYPE, ATTR_ICON, ATTR_ICONDIR, ATTR_INDEX, ATTR_MAXAGE, ATTR_MD5, ATTR_PUTABLE, ATTR_QUALITY, ATTR_RELOCATE, ATTR_STYLE_LINK, ATTR_TITLE, browsetype, COND_FAILED, COND_OK, dresource, fresource, listing, listing_stamp, STATE_CONTENT_LOCATION`

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
`ForwardFrame()`

Method Summary
`protected Reply` | `dupReply(Request request, Reply rep)` Duplicate the given client side reply into a server side one.
`protected Request` | `dupRequest(Request request)` Duplicate a server side request into a client side request.
`java.lang.String` | `getLocalRoot()` Get the local root resource name.
`ResourceReference` | `getLocalRootResource()`
`java.lang.String` | `getReceivedBy()` Get the received by attribute value.
`boolean` | `getTraceRequest()` Should we try to trace request path ?
`java.lang.String` | `getVia()`
`void` | `initialize(java.lang.Object[] values)`
`void` | `notifyUnload()` This resource is being unloaded.
`ReplyInterface` | `perform(RequestInterface ri)` Perform the given proxied request.
`void` | `registerResource(FramedResource resource)` companion to initialize, called after the register
`protected void` | `updateStatistics(Request r)` Update relevant statistics (kind of a hack).

Methods inherited from class org.w3c.jigsaw.frames.HTTPFrame

`addStyleSheet, attributeChanged, browse, checkIfMatch, checkIfModifiedSince, checkIfNoneMatch, checkIfUnmodifiedSince, checkRequest, computeTrashDir, computeTrashFile, createDefaultReply, createFileReply, delete, deleteDirectoryResource, deleteFileResource, deleteOtherResource, extended, get, getAllowDeleteFlag, getBrowsableFlag, getBrowseType, getContentEncoding, getContentLanguage, getContentLength, getContentType, getDirectoryListing, getDirectoryResource, getDirectoryResource, getETag, getFileResource, getFileResource, getHelpURL, getHelpURL, getIcon, getIconDirectory, getIndex, getMaxAge, getMD5Flag, getOtherResource, getPutableFlag, getQuality, getRelocateFlag, getStyleSheetURL, getTitle, getURL, handleRangeRequest, head, headDirectoryResource, headFileResource, headOtherResource, link, lookup, lookupDirectory, lookupFile, lookupOther, lookupResource, options, performFrames, post, put, putFileResource, putOtherResource, registerOtherResource, setValue, trace, unlink, updateCachedHeaders`

Methods inherited from class org.w3c.tools.resources.ResourceFrame
`addFrameEventListener, eventDisabled, fireFrameEvent, frameModified, getFilters, getFilters, getFrameReference, getResource, getResourceReference, getSpaceEntry, getURLPath, lookupFilters, lookupFrames, postFrameEvent, processEvent, removeFrameEventListener, 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, markModified, postAttributeChangeEvent, postEvent, postStructureChangedEvent, postStructureChangedEvent, registerFrame, registerFrameIfNone, removeAttributeChangedListener, removeStructureChangedListener, unregisterFrame`

Methods inherited from class org.w3c.tools.resources.Resource
`acceptUnload, checkMultipleLock, collectFrames, getContext, getFrame, getFrames, 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_LOCAL_ROOT

    protected static int ATTR_LOCAL_ROOT

  Attribute index - The local resource, if server-wide request.

### ATTR_RECEIVED_BY

    protected static int ATTR_RECEIVED_BY

  Attribute index - The received by attribute of that proxy.

### ATTR_TRACEREQ

    protected static int ATTR_TRACEREQ

  Attribute index - Try to trace how the request has been processed.

### manager

    protected HttpManager manager

  The HttpManager we use.

### cache_hits

    public int cache_hits

  Statistics - Number of hits.

### cache_misses

    public int cache_misses

  Statistics - Number of misses.

### cache_revalidations

    public int cache_revalidations

  Statistics - Number of successfull revalidations.

### cache_retrievals

    public int cache_retrievals

  Statistics - Number of successfull revalidations.

### cache_nocache

    public int cache_nocache

  Statistics - Number of requests that didn't use cache.

### reqcount

    public int reqcount

  Statistics - Number of requests handled.

### cache_icps

    public int cache_icps

  Statistics - Number of ICP redirects.

### reqerred

    public int reqerred

  Statistics - Errors.

### lroot

    protected ResourceReference lroot

  Get the local root resource to use for internal requests.

Constructor Detail

### ForwardFrame

    public ForwardFrame()

Method Detail

### getLocalRoot

    public java.lang.String getLocalRoot()

  Get the local root resource name.

### getReceivedBy

    public java.lang.String getReceivedBy()

  Get the received by attribute value.

  If this attribute is not defined, it will default to the name of the host running the proxy.

  Returns:
    A String.

### getTraceRequest

    public boolean getTraceRequest()

  Should we try to trace request path ?
  Returns:
    A boolean.

### getVia

    public java.lang.String getVia()

### getLocalRootResource

    public ResourceReference getLocalRootResource()

### updateStatistics

    protected void updateStatistics(Request r)

  Update relevant statistics (kind of a hack).

### dupRequest

    protected Request dupRequest(Request request)
                          throws HTTPException,
                                 java.io.IOException

  Duplicate a server side request into a client side request.
  Parameters:
    `request` - The server side request.
  Returns:
    A Client side request.
  Throws:
    HTTPException - if processing the request failed.
    java.io.IOException - if an IO error occurs.

### dupReply

    protected Reply dupReply(Request request,
                             Reply rep)
                      throws HTTPException,
                             java.io.IOException

  Duplicate the given client side reply into a server side one. Perform any actions requested by HTTP/1.1.
  Parameters:
    `request` - The request ebing processed.
    `reply` - The reply to clone.
  Returns:
    A server-side Reply instance.
  Throws:
    HTTPException - If some HTTP errors occured in the process.
    java.io.IOException - If setting the streams failed.

### perform

    public ReplyInterface perform(RequestInterface ri)
                           throws ProtocolException,
                                  ResourceException

  Perform the given proxied request.
  Parameters:
    `request` - The request to perform.
  Returns:
    A Reply instance.
  Throws:
    ProtocolException - if processing the request failed.
    ResourceException - if the resource got a fatal error.
  Overrides:
    perform in class HTTPFrame

### notifyUnload

    public void notifyUnload()

  This resource is being unloaded. Tell the HttpManager to save any pending data to stable storage.
  Overrides:
    notifyUnload in class FramedResource

### registerResource

    public void registerResource(FramedResource resource)

  companion to initialize, called after the register
  Overrides:
    registerResource in class HTTPFrame

### initialize

    public void initialize(java.lang.Object[] values)

  Overrides:
    initialize in class FramedResource