Squid Web Cache master
Loading...
Searching...
No Matches
Collaboration diagram for Adaptation:

Terminology

Service sets and chains

Service sets and chains are implemented as ServiceGroup class kids. They are very similar in most code aspects. The primary external difference is that ServiceSet can "replace" a service and ServiceChain can find the "next" service. The internal group maintenance code is implemented in ServiceGroup and is parametrized by the kids (see the allServicesSame member).

If an ICAP service with the routing=1 option in squid.conf returns an ICAP X-Next-Services response header during a successful REQMOD or RESPMOD transaction, Squid abandons the original adaptation plan and forms a new adaptation chain consisting of services identified in the X-Next-Services header value (using a comma-separated list of adaptation service names from squid.conf). The dynamically created chain is destroyed once the new plan is completed or replaced.

Adaptation layers

Here is a typical adaptation code sequence:

All of the above classes except master callers are Adaptation::Initiate kids. All of the above classes except transactions are Adaptation::Initiator kids.