On the cleanup branch I've been going through and trying to document what the client-side classes do.

As you probably know their names only have loose affiliation with their operation and there is a LOT of scope creep blurring the boundaries.

Below are the steps I'm seriously considering making to trunk over the new few weeks in order to be able to clarify and document the scopes properly.

1) I would like to rename ConnStateData to "ConnectionManager" since its core scope seems to be:
 * owning the client FD
 * owning the request transaction state object(s)
 * passing data to the request parser
 * managing read/write ops with the client-streams buffers
  ie (ultimate Producer for request and Consumer for reply)


2) I would like to rename ClientSocketContext as ClientXaction since its core scope seems to be owning the processing state flags. This would eventually become the master transaction object, storing the log history and master pointers to bits of data. Although there is a lot of change before it gets to be used everywhere. Starting with turning its doCallouts with Async steps.


3) deflating the parser levels and documenting the structure of ownership for each parse step.
 I've started with breaking HttpParser out of HttpMsg.*.


4) figuring out if we actually need ClientHttpRequest after the above.


Ideas? opinions? stuff I've overlooked?

Amos
--
Please be using
  Current Stable Squid 2.7.STABLE9 or 3.1.11
  Beta testers wanted for 3.2.0.5

Reply via email to