]> git.ipfire.org Git - thirdparty/squid.git/blob - src/format/Config.cc
Boilerplate: update copyright blurbs on src/
[thirdparty/squid.git] / src / format / Config.cc
1 /*
2 * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9 #include "squid.h"
10 #include "cache_cf.h"
11 #include "ConfigParser.h"
12 #include "Debug.h"
13 #include "format/Config.h"
14 #include <list>
15
16 Format::FmtConfig Format::TheConfig;
17
18 void
19 Format::FmtConfig::parseFormats()
20 {
21 char *name, *def;
22
23 if ((name = ConfigParser::NextToken()) == NULL)
24 self_destruct();
25
26 if ((def = ConfigParser::NextQuotedOrToEol()) == NULL) {
27 self_destruct();
28 return;
29 }
30
31 debugs(3, 2, "Custom Format for '" << name << "' is '" << def << "'");
32
33 Format *nlf = new Format(name);
34
35 if (!nlf->parse(def)) {
36 self_destruct();
37 return;
38 }
39
40 // add to global config list
41 nlf->next = formats;
42 formats = nlf;
43 }
44
45 void
46 Format::FmtConfig::registerTokens(const String &nsName, TokenTableEntry const *tokenArray)
47 {
48 debugs(46, 2, HERE << " register format tokens for '" << nsName << "'");
49 if (tokenArray != NULL)
50 tokens.push_back(TokenNamespace(nsName, tokenArray));
51 else
52 debugs(0, DBG_CRITICAL, "BUG: format tokens for '" << nsName << "' missing!");
53 }