HttpHdrCc::parseInit now takes a const String reference argument.
Same function of httpHdrCcParseCreate can be obtained by new HttpHdrCc() + HttpHdrCc::parseInit()
getList(HDR_CACHE_CONTROL, &s);
- cc = httpHdrCcParseCreate(&s);
+ cc=new HttpHdrCc();
+ if (!cc->parseInit(s)) {
+ delete cc;
+ cc = NULL;
+ }
HttpHeaderStats[owner].ccParsedCount++;
// HdrCcNameToIdMap is self-cleaning
}
-/* creates an cc object from a 0-terminating string */
-HttpHdrCc *
-httpHdrCcParseCreate(const String * str)
-{
- HttpHdrCc *cc = new HttpHdrCc();
-
- if (!cc->parseInit(str)) {
- delete cc;
- cc = NULL;
- }
-
- return cc;
-}
-
/* parses a 0-terminating string and inits cc */
bool
-HttpHdrCc::parseInit(const String * str)
+HttpHdrCc::parseInit(const String & str)
{
const char *item;
const char *p; /* '=' parameter */
http_hdr_cc_type type;
int ilen;
int nlen;
- assert(str);
/* iterate through comma separated list */
- while (strListGetItem(str, ',', &item, &ilen, &pos)) {
+ while (strListGetItem(&str, ',', &item, &ilen, &pos)) {
String tmpstr;
/* isolate directive name */
mask(0), max_age(max_age_), s_maxage(s_maxage_),
max_stale(max_stale_), stale_if_error(0),
min_fresh(min_fresh_) {}
+ /// (re)initialize by parsing the supplied Cache-control header string
+ bool parseInit(const String &s);
MEMPROXY_CLASS(HttpHdrCc);
-//TODO: make private:
- /// (re)initialize by parsing the supplied Cache-control header string
- bool parseInit(const String *s);
-
};
MEMPROXY_CLASS_INLINE(HttpHdrCc);
/* Http Cache Control Header Field */
SQUIDCEXTERN void httpHdrCcInitModule(void);
SQUIDCEXTERN void httpHdrCcCleanModule(void);
-SQUIDCEXTERN HttpHdrCc *httpHdrCcParseCreate(const String * str);
SQUIDCEXTERN void httpHdrCcDestroy(HttpHdrCc * cc);
SQUIDCEXTERN HttpHdrCc *httpHdrCcDup(const HttpHdrCc * cc);
SQUIDCEXTERN void httpHdrCcPackInto(const HttpHdrCc * cc, Packer * p);