diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2018-03-03 18:24:48 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2018-03-03 18:24:48 +0000 |
commit | 4497f8ed4cc6a28b93c3c4c5aa927ab79693a85d (patch) | |
tree | 9305c5b8bdcf6edc59a572318dc2a7914978502c | |
parent | Use a variadic template map lookup that's copy-free (diff) | |
download | icespider-4497f8ed4cc6a28b93c3c4c5aa927ab79693a85d.tar.bz2 icespider-4497f8ed4cc6a28b93c3c4c5aa927ab79693a85d.tar.xz icespider-4497f8ed4cc6a28b93c3c4c5aa927ab79693a85d.zip |
Dedupe map dumpingicespider-0.3
-rw-r--r-- | icespider/fcgi/cgiRequestBase.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/icespider/fcgi/cgiRequestBase.cpp b/icespider/fcgi/cgiRequestBase.cpp index 6a22426..48a9daa 100644 --- a/icespider/fcgi/cgiRequestBase.cpp +++ b/icespider/fcgi/cgiRequestBase.cpp @@ -91,25 +91,26 @@ namespace IceSpider { AdHocFormatter(VarFmt, "\t%?: [%?]\n"); AdHocFormatter(PathFmt, "\t[%?]\n"); + template<typename Fmt, typename Map> + void + dumpMap(std::ostream & s, const std::string_view & n, const Map & map) + { + s << n << std::endl; + for (const auto & p : map) { + Fmt::write(s, p.first, p.second); + } + } + std::ostream & CgiRequestBase::dump(std::ostream & s) const { - s << "Environment dump" << std::endl; - for (const auto & e : envmap) { - VarFmt::write(s, e.first, e.second); - } + dumpMap<VarFmt>(s, "Environment dump"sv, envmap); s << "Path dump" << std::endl; for (const auto & e : pathElements) { PathFmt::write(s, e); } - s << "Query string dump" << std::endl; - for (const auto & v : qsmap) { - VarFmt::write(s, v.first, v.second); - } - s << "Cookie dump" << std::endl; - for (const auto & c : cookiemap) { - VarFmt::write(s, c.first, c.second); - } + dumpMap<VarFmt>(s, "Query string dump"sv, qsmap); + dumpMap<VarFmt>(s, "Cookie dump"sv, cookiemap); return s; } |