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