diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2016-06-19 14:58:44 +0100 | 
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2016-06-19 14:58:44 +0100 | 
| commit | d3e81c08640d98a3da64db0e0e1b8af15f0ed23d (patch) | |
| tree | dbb4afaae034133d4160368dedf31ff53e9a015e | |
| parent | Add start of test app using an as real world built route file (diff) | |
| download | icespider-d3e81c08640d98a3da64db0e0e1b8af15f0ed23d.tar.bz2 icespider-d3e81c08640d98a3da64db0e0e1b8af15f0ed23d.tar.xz icespider-d3e81c08640d98a3da64db0e0e1b8af15f0ed23d.zip | |
Pass operation response back to the request
| -rw-r--r-- | icespider/compile/routeCompiler.cpp | 13 | ||||
| -rw-r--r-- | icespider/core/ihttpRequest.h | 2 | 
2 files changed, 13 insertions, 2 deletions
| diff --git a/icespider/compile/routeCompiler.cpp b/icespider/compile/routeCompiler.cpp index 177cd22..7e0d9ed 100644 --- a/icespider/compile/routeCompiler.cpp +++ b/icespider/compile/routeCompiler.cpp @@ -222,11 +222,20 @@ namespace IceSpider {  									 p->name, getEnumString(p->source), Slice::typeToString(ip->type()), p->name);  				}  				fprintbf(4, output, "auto prx = getProxy<%s>();\n", proxyName); -				fprintbf(4, output, "prx->%s(", operation); +				if (o->returnsData()) { +					fprintbf(4, output, "request->response(prx->%s(", operation); +				} +				else { +					fprintbf(4, output, "prx->%s(", operation); +				}  				for (const auto & p : r->params) {  					fprintbf(output, "_p_%s, ", p->name);  				} -				fprintbf(output, "request->getContext());\n"); +				fprintbf(output, "request->getContext())"); +				if (o->returnsData()) { +					fprintbf(output, ")"); +				} +				fprintbf(output, ";\n");  				fprintbf(3, output, "}\n\n");  				fprintbf(2, output, "private:\n");  				for (const auto & p : r->params) { diff --git a/icespider/core/ihttpRequest.h b/icespider/core/ihttpRequest.h index 76361b6..3ea877e 100644 --- a/icespider/core/ihttpRequest.h +++ b/icespider/core/ihttpRequest.h @@ -18,6 +18,8 @@ namespace IceSpider {  			T getQueryStringParam(const std::string & key) const { (void)key; return T(); }  			template<typename T>  			T getHeaderParam(const std::string & key) const { (void)key; return T(); } +			template<typename T> +			void response(const T &) const { }  	};  } | 
