summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2016-09-11 13:01:00 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2016-09-11 13:01:00 +0100
commitb30ae4270c4d217169cc98712de7efa55206ea0a (patch)
tree8dd435e66d76b60b734ac5e58e51cec34332ac4c
parentFix defaults in mash up (diff)
downloadicespider-b30ae4270c4d217169cc98712de7efa55206ea0a.tar.bz2
icespider-b30ae4270c4d217169cc98712de7efa55206ea0a.tar.xz
icespider-b30ae4270c4d217169cc98712de7efa55206ea0a.zip
If a mashup member isn't a defined operation, assume it is a local variable from a parameter
-rw-r--r--icespider/compile/routeCompiler.cpp14
-rw-r--r--icespider/unittests/test-api.ice1
2 files changed, 11 insertions, 4 deletions
diff --git a/icespider/compile/routeCompiler.cpp b/icespider/compile/routeCompiler.cpp
index 20d5c39..a6fa236 100644
--- a/icespider/compile/routeCompiler.cpp
+++ b/icespider/compile/routeCompiler.cpp
@@ -482,17 +482,23 @@ namespace IceSpider {
members = t.first->dataMembers();
}
for (auto mi = members.begin(); mi != members.end(); mi++) {
+ bool isOp = false;
+ if (mi != members.begin()) {
+ fprintbf(output, ",");
+ }
+ fprintbf(output, "\n");
for (const auto & o : r->operations) {
auto proxyName = o.second->operation.substr(0, o.second->operation.find_last_of('.'));
auto operation = o.second->operation.substr(o.second->operation.find_last_of('.') + 1);
if ((*mi)->name() == o.first) {
- if (mi != members.begin()) {
- fprintbf(output, ",");
- }
- fprintbf(output, "\n");
fprintbf(6, output, "prx%s->end_%s(_ar_%s)", proxies.find(proxyName)->second, operation, o.first);
+ isOp = true;
+ break;
}
}
+ if (!isOp) {
+ fprintbf(6, output, "_p_%s", (*mi)->name());
+ }
}
if (t.second) {
fprintf(output, ")");
diff --git a/icespider/unittests/test-api.ice b/icespider/unittests/test-api.ice
index 310761b..7b81952 100644
--- a/icespider/unittests/test-api.ice
+++ b/icespider/unittests/test-api.ice
@@ -11,6 +11,7 @@ module TestIceSpider {
class Mash2 {
SomeModel a;
SomeModel b;
+ string s;
};
interface TestApi {