## 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.
`protected static HttpWarning` `WARN_HEURISTIC` The HTTP warning used to indicate a heuristic expiration time.

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

`acceptRanges, allowed, ATTR_ALLOW_DEL, ATTR_BROWSABLE, ATTR_CHARSET, ATTR_CONTENT_ENCODING, ATTR_CONTENT_LANGUAGE, ATTR_CONTENT_LENGTH, ATTR_CONTENT_TYPE, ATTR_ICON, ATTR_ICONDIR, ATTR_INDEX, ATTR_INDEXES, ATTR_MAXAGE, ATTR_MD5, ATTR_PUTABLE, ATTR_QUALITY, ATTR_RELOCATE, ATTR_STYLE_LINK, ATTR_TITLE, browsetype, COND_FAILED, COND_OK, COND_WEAK, 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, co, id`

Fields inherited from class org.w3c.tools.resources.AttributeHolder
`attributes, 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)` Initialize the frames of that framed resource.
`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, checkExpect, checkIfMatch, checkIfModifiedSince, checkIfNoneMatch, checkIfUnmodifiedSince, checkRequest, checkValidators, computeContainerListing, computeETag, computeTrashDir, computeTrashFile, createDefaultReply, createFileReply, delete, deleteDirectoryResource, deleteFileResource, deleteMe, deleteOtherResource, extended, get, getAllow, getAllowDeleteFlag, getBrowsableFlag, getBrowseType, getCharset, getContentEncoding, getContentLanguage, getContentLength, getContentType, getDirectoryListing, getDirectoryResource, getDirectoryResource, getETag, getFileResource, getFileResource, getHelpURL, getHelpURL, getIcon, getIconDirectory, getIndex, getIndexes, getMaxAge, getMD5Flag, getOtherResource, getPutableFlag, getQuality, getRelocateFlag, getStyleSheetURL, getTitle, getURL, handleRangeRequest, head, headDirectoryResource, headFileResource, headOtherResource, initialize, link, lookup, lookupDirectory, lookupFile, lookupOther, lookupResource, options, performFrames, pickleValues, 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, setSilentValue, setSilentValue, 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, unsafeGetContext, unsafeGetIdentifier, 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, unsafeGetString`

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.

### WARN_HEURISTIC

    protected static HttpWarning WARN_HEURISTIC

  The HTTP warning used to indicate a heuristic expiration time.

### 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.
  Overrides:
    perform in class HTTPFrame
  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.

### 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
  Tags copied from class: HTTPFrame
  Parameters:
    `resource` - The resource associated with this frame.

### initialize

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

  Description copied from class: FramedResource
  Initialize the frames of that framed resource.
  Overrides:
    initialize in class FramedResource
  Tags copied from class: FramedResource
  Parameters:
    `values` - Default attribute values.