From: Alex Rousskov Date: Fri, 11 Mar 2016 17:53:26 +0000 (-0700) Subject: Documented some of the Packable API problems. X-Git-Tag: SQUID_4_0_8~41 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7b1607c2eb702800c00e7aeb51439424b866ef8f;p=thirdparty%2Fsquid.git Documented some of the Packable API problems. --- diff --git a/src/base/Packable.h b/src/base/Packable.h index 2619157a34..6acff1546a 100644 --- a/src/base/Packable.h +++ b/src/base/Packable.h @@ -45,6 +45,9 @@ * Thus, one can write just one function that will take a Packable object * and either "pack" things for Comm::Write or "append" things to Store, * depending on actual Packable object supplied. + * + * XXX: Misnamed. This is a Packer or Packager API (i.e., "something that packs + * or packages others"); this is not a "something that can be packed" API. */ class Packable { @@ -67,6 +70,12 @@ public: * * \note arguments may be evaluated more than once, be careful * of side-effects + * + * XXX: This method either should not exist or should not be virtual. + * Kids should not be forced to re-implement vappendf() logic. + * That logic should be implemented once, using other [Packable] APIs. + * Packable is not about providing a printf(3) service. Packable + * is about writing opaque data to various custom destinations. */ virtual void vappendf(const char *fmt, va_list ap) = 0;