diff options
| -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 { }  	};  } | 
