}
void
-Format::FmtConfig::registerTokens(const String &nsName, TokenTableEntry const *tokenArray)
+Format::FmtConfig::registerTokens(const SBuf &nsName, TokenTableEntry const *tokenArray)
{
- debugs(46, 2, HERE << " register format tokens for '" << nsName << "'");
- if (tokenArray != NULL)
- tokens.push_back(TokenNamespace(nsName, tokenArray));
+ debugs(46, 2, "register format tokens for '" << nsName << "'");
+ if (tokenArray)
+ tokens.emplace_back(TokenNamespace(nsName, tokenArray));
else
debugs(0, DBG_CRITICAL, "BUG: format tokens for '" << nsName << "' missing!");
}
class TokenNamespace
{
public:
- TokenNamespace(const String &nsName, TokenTableEntry const *tSet) : prefix(nsName), tokenSet(tSet) {}
+ TokenNamespace(const SBuf &nsName, TokenTableEntry const *tSet) : prefix(nsName), tokenSet(tSet) {}
/// prefix namespace name (excluding '::')
- String prefix;
+ SBuf prefix;
/// array of tokens inside this namespace
/// The set of tokens may change, but the location of it pointed to from here must not.
* in order registered. So care needs to be taken that arrays registered
* first do not overlap or consume tokens registered later for a namespace.
*/
- void registerTokens(const String &nsName, TokenTableEntry const *tokenArray);
+ void registerTokens(const SBuf &nsName, TokenTableEntry const *tokenArray);
/// Linked list of custom formats
Format *formats;
// TODO standard log tokens
#if USE_ADAPTATION
- TheConfig.registerTokens(String("adapt"),::Format::TokenTableAdapt);
+ TheConfig.registerTokens(SBuf("adapt"),::Format::TokenTableAdapt);
#endif
#if ICAP_CLIENT
- TheConfig.registerTokens(String("icap"),::Format::TokenTableIcap);
+ TheConfig.registerTokens(SBuf("icap"),::Format::TokenTableIcap);
#endif
#if USE_OPENSSL
- TheConfig.registerTokens(String("ssl"),::Format::TokenTableSsl);
+ TheConfig.registerTokens(SBuf("ssl"),::Format::TokenTableSsl);
#endif
}
type = LFT_NONE;
// Scan each registered token namespace
- debugs(46, 9, HERE << "check for token in " << TheConfig.tokens.size() << " namespaces.");
- for (std::list<TokenNamespace>::const_iterator itr = TheConfig.tokens.begin(); itr != TheConfig.tokens.end(); ++itr) {
- debugs(46, 7, HERE << "check for possible " << itr->prefix << ":: token");
- const size_t len = itr->prefix.size();
- if (itr->prefix.cmp(cur, len) == 0 && cur[len] == ':' && cur[len+1] == ':') {
- debugs(46, 5, HERE << "check for " << itr->prefix << ":: token in '" << cur << "'");
+ debugs(46, 9, "check for token in " << TheConfig.tokens.size() << " namespaces.");
+ for (const auto &itr : TheConfig.tokens) {
+ debugs(46, 7, "check for possible " << itr.prefix << ":: token");
+ const size_t len = itr.prefix.length();
+ if (itr.prefix.cmp(cur, len) == 0 && cur[len] == ':' && cur[len+1] == ':') {
+ debugs(46, 5, "check for " << itr.prefix << ":: token in '" << cur << "'");
const char *old = cur;
- cur = scanForToken(itr->tokenSet, cur+len+2);
+ cur = scanForToken(itr.tokenSet, cur+len+2);
if (old != cur) // found
break;
else // reset to start of namespace