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;  	} | 
