41.7.1.0.2 OTcl methods

Although Http/Cache is a SplitObject, all of its methods are in OTcl. Most of them are used to process an incoming request. Their relations can be illustrated with the flowchart below, followed by explainations:

Figure 41.4: Handling of incoming request in Http/Cache
\includegraphics{cache-flowchart}

rX get-request client type pageid & The entry point of processing any request. It checks if the requested page $pageid exists in the cache's page pool, then call either cache-hit or cache-miss.

cache-miss client type pageid & This cache doesn't have the page. Send a request to server (or parent cache) to refetch the page if it hasn't already done so. Register $client in a list so that when the cache gets the page, it'll forward the page to all clients who have requested the page.

cache-hit client type pageid & Checks the validatity of the cached page. If it's valid, send $client the cached page, otherwise refetch the page.

is-consistent client type pageid & Returns 1 if $pageid is valid. This is intended to be overridden by subclasses.

refetch client type pageid & Refetch an invalid page from server. This is intended to be overridden by subclasses.

Tom Henderson 2011-11-05