summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2018-03-03 18:24:48 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2018-03-03 18:24:48 +0000
commit4497f8ed4cc6a28b93c3c4c5aa927ab79693a85d (patch)
tree9305c5b8bdcf6edc59a572318dc2a7914978502c
parentUse a variadic template map lookup that's copy-free (diff)
downloadicespider-0.3.tar.bz2
icespider-0.3.tar.xz
icespider-0.3.zip
Dedupe map dumpingicespider-0.3
-rw-r--r--icespider/fcgi/cgiRequestBase.cpp25
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;
}