summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--icespider/compile/routeCompiler.cpp16
-rw-r--r--icespider/compile/routeCompiler.h4
2 files changed, 10 insertions, 10 deletions
diff --git a/icespider/compile/routeCompiler.cpp b/icespider/compile/routeCompiler.cpp
index 8c274d8..50aa3b2 100644
--- a/icespider/compile/routeCompiler.cpp
+++ b/icespider/compile/routeCompiler.cpp
@@ -45,39 +45,39 @@ namespace IceSpider {
}
Slice::OperationPtr
- RouteCompiler::findOperation(RoutePtr r, const Slice::ContainerPtr & c, const Ice::StringSeq & ns)
+ RouteCompiler::findOperation(const std::string & on, const Slice::ContainerPtr & c, const Ice::StringSeq & ns)
{
for (const auto & cls : c->classes()) {
auto fqcn = ns + cls->name();
for (const auto & op : cls->allOperations()) {
auto fqon = boost::algorithm::join(fqcn + op->name(), ".");
- if (fqon == r->operation) {
+ if (fqon == on) {
return op;
}
}
}
for (const auto & m : c->modules()) {
- auto op = findOperation(r, m, ns + m->name());
+ auto op = findOperation(on, m, ns + m->name());
if (op) return op;
}
return NULL;
}
Slice::OperationPtr
- RouteCompiler::findOperation(RoutePtr r, const Units & us)
+ RouteCompiler::findOperation(const std::string & on, const Units & us)
{
for (const auto & u : us) {
- auto op = findOperation(r, u.second);
+ auto op = findOperation(on, u.second);
if (op) return op;
}
- throw std::runtime_error("Find operator failed for " + r->name);
+ throw std::runtime_error("Find operation " + on + " failed.");
}
void
RouteCompiler::applyDefaults(RouteConfigurationPtr c, const Units & u) const
{
for (const auto & r : c->routes) {
- auto o = findOperation(r, u);
+ auto o = findOperation(r->operation, u);
for (const auto & p : o->parameters()) {
auto defined = std::find_if(r->params.begin(), r->params.end(), [p](const auto & rp) {
return p->name() == rp->name;
@@ -294,7 +294,7 @@ namespace IceSpider {
fprintbf(3, output, "}\n\n");
fprintbf(3, output, "void execute(IceSpider::IHttpRequest * request) const\n");
fprintbf(3, output, "{\n");
- auto o = findOperation(r, units);
+ auto o = findOperation(r->operation, units);
for (const auto & p : r->params) {
if (p->hasUserSource) {
auto ip = *std::find_if(o->parameters().begin(), o->parameters().end(), [p](const auto & ip) { return ip->name() == p->name; });
diff --git a/icespider/compile/routeCompiler.h b/icespider/compile/routeCompiler.h
index 93522fd..63b7c38 100644
--- a/icespider/compile/routeCompiler.h
+++ b/icespider/compile/routeCompiler.h
@@ -28,8 +28,8 @@ namespace IceSpider {
void processConfiguration(FILE * output, RouteConfigurationPtr, const Units &) const;
void registerOutputSerializers(FILE * output, RoutePtr) const;
void releaseOutputSerializers(FILE * output, RoutePtr) const;
- static Slice::OperationPtr findOperation(RoutePtr, const Units &);
- static Slice::OperationPtr findOperation(RoutePtr, const Slice::ContainerPtr &, const Ice::StringSeq & = Ice::StringSeq());
+ static Slice::OperationPtr findOperation(const std::string &, const Units &);
+ static Slice::OperationPtr findOperation(const std::string &, const Slice::ContainerPtr &, const Ice::StringSeq & = Ice::StringSeq());
};
}
}