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