diff options
| -rw-r--r-- | icespider/compile/routeCompiler.cpp | 16 | ||||
| -rw-r--r-- | icespider/compile/routeCompiler.h | 4 | 
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());  		};  	}  } | 
