diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2016-10-09 01:17:35 +0100 | 
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2016-10-09 03:11:30 +0100 | 
| commit | 77e0361f2392aba1a885b6d653560e669079fbac (patch) | |
| tree | 41a60b2bd4ddc90b413217b01586f3060d2cf726 | |
| parent | Add support for cookie parameters (diff) | |
| download | icespider-77e0361f2392aba1a885b6d653560e669079fbac.tar.bz2 icespider-77e0361f2392aba1a885b6d653560e669079fbac.tar.xz icespider-77e0361f2392aba1a885b6d653560e669079fbac.zip | |
Tidy creation of strings from ranges
| -rw-r--r-- | icespider/fcgi/cgiRequestBase.cpp | 15 | ||||
| -rw-r--r-- | icespider/fcgi/cgiRequestBase.h | 6 | 
2 files changed, 13 insertions, 8 deletions
| diff --git a/icespider/fcgi/cgiRequestBase.cpp b/icespider/fcgi/cgiRequestBase.cpp index eb141c2..a773b07 100644 --- a/icespider/fcgi/cgiRequestBase.cpp +++ b/icespider/fcgi/cgiRequestBase.cpp @@ -27,6 +27,12 @@ namespace IceSpider {  		}  	} +	std::string +	operator*(const CgiRequestBase::Env & t) +	{ +		return std::string(std::get<0>(t), std::get<1>(t)); +	} +  	void  	CgiRequestBase::initialize()  	{ @@ -41,13 +47,13 @@ namespace IceSpider {  		auto qs = envmap.find("QUERY_STRING");  		if (qs != envmap.end()) { -			XWwwFormUrlEncoded::iterateVars(std::string(std::get<0>(qs->second), std::get<1>(qs->second)), [this](auto k, auto v) { +			XWwwFormUrlEncoded::iterateVars(*qs->second, [this](auto k, auto v) {  				qsmap.insert({ k, v });  			}, "&");  		}  		auto cs = envmap.find("HTTP_COOKIE");  		if (cs != envmap.end()) { -			XWwwFormUrlEncoded::iterateVars(std::string(std::get<0>(cs->second), std::get<1>(cs->second)), [this](auto k, auto v) { +			XWwwFormUrlEncoded::iterateVars(*cs->second, [this](auto k, auto v) {  				cookiemap.insert({ k, v });  			}, "; ");  		} @@ -60,7 +66,7 @@ namespace IceSpider {  		if (i == vm.end()) {  			return IceUtil::None;  		} -		return std::string(std::get<0>(i->second), std::get<1>(i->second)); +		return *i->second;  	}  	OptionalString @@ -84,8 +90,7 @@ namespace IceSpider {  	{  		try {  			auto i = envmap.find("REQUEST_METHOD"); -			return Slicer::ModelPartForEnum<HttpMethod>::lookup( -				std::string(std::get<0>(i->second), std::get<1>(i->second))); +			return Slicer::ModelPartForEnum<HttpMethod>::lookup(*i->second);  		}  		catch (const Slicer::InvalidEnumerationSymbol &) {  			throw IceSpider::Http405_MethodNotAllowed(); diff --git a/icespider/fcgi/cgiRequestBase.h b/icespider/fcgi/cgiRequestBase.h index 1cfcacc..e613866 100644 --- a/icespider/fcgi/cgiRequestBase.h +++ b/icespider/fcgi/cgiRequestBase.h @@ -13,14 +13,14 @@ namespace IceSpider {  				bool operator()(char const *a, char const *b) const;  			}; -			typedef std::tuple<char *, char *> Env; -			typedef std::map<const char *, Env, cmp_str> VarMap; -  			CgiRequestBase(Core * c, char ** env);  			void addenv(char *);  			void initialize();  		public: +			typedef std::tuple<char *, char *> Env; +			typedef std::map<const char *, Env, cmp_str> VarMap; +  			const PathElements & getRequestPath() const override;  			HttpMethod getRequestMethod() const override;  			OptionalString getQueryStringParam(const std::string & key) const override; | 
