summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--icespider/compile/routeCompiler.cpp2
-rw-r--r--icespider/core/core.cpp2
-rw-r--r--icespider/core/irouteHandler.cpp2
-rw-r--r--icespider/core/irouteHandler.h4
4 files changed, 6 insertions, 4 deletions
diff --git a/icespider/compile/routeCompiler.cpp b/icespider/compile/routeCompiler.cpp
index e2ab8a1..99771aa 100644
--- a/icespider/compile/routeCompiler.cpp
+++ b/icespider/compile/routeCompiler.cpp
@@ -294,7 +294,7 @@ namespace IceSpider {
fprintbf(1, output, "// path: %s\n", r->path);
fprintbf(1, output, "class %s : public IceSpider::IRouteHandler {\n", r->name);
fprintbf(2, output, "public:\n");
- fprintbf(3, output, "%s() :\n", r->name);
+ fprintbf(3, output, "%s(const IceSpider::Core *) :\n", r->name);
fprintbf(4, output, "IceSpider::IRouteHandler(IceSpider::HttpMethod::%s, \"%s\")", methodName, r->path);
for (const auto & p : r->params) {
if (p->hasUserSource) {
diff --git a/icespider/core/core.cpp b/icespider/core/core.cpp
index cb0c671..6a44523 100644
--- a/icespider/core/core.cpp
+++ b/icespider/core/core.cpp
@@ -11,7 +11,7 @@ namespace IceSpider {
routes.resize(HttpMethod::OPTIONS + 1, {{ }});
// Initialize routes
for (const auto & rp : AdHoc::PluginManager::getDefault()->getAll<RouteHandlerFactory>()) {
- auto r = rp->implementation()->create();
+ auto r = rp->implementation()->create(this);
auto & mroutes = routes[r->method];
if (mroutes.size() <= r->pathElementCount()) {
mroutes.resize(r->pathElementCount() + 1);
diff --git a/icespider/core/irouteHandler.cpp b/icespider/core/irouteHandler.cpp
index 172c77d..ca9cb94 100644
--- a/icespider/core/irouteHandler.cpp
+++ b/icespider/core/irouteHandler.cpp
@@ -2,7 +2,7 @@
#include "core.h"
#include <factory.impl.h>
-INSTANTIATEVOIDFACTORY(IceSpider::IRouteHandler);
+INSTANTIATEFACTORY(IceSpider::IRouteHandler, const IceSpider::Core *);
namespace IceSpider {
IRouteHandler::IRouteHandler(HttpMethod m, const std::string & p) :
diff --git a/icespider/core/irouteHandler.h b/icespider/core/irouteHandler.h
index 4832bdb..ffbde36 100644
--- a/icespider/core/irouteHandler.h
+++ b/icespider/core/irouteHandler.h
@@ -10,6 +10,8 @@
#include <boost/lexical_cast.hpp>
namespace IceSpider {
+ class Core;
+
class DLL_PUBLIC IRouteHandler : public Path {
public:
IRouteHandler(HttpMethod, const std::string & path);
@@ -44,7 +46,7 @@ namespace IceSpider {
void addRouteSerializer(const MimeType &, StreamSerializerFactoryPtr);
void removeRouteSerializer(const MimeType &);
};
- typedef AdHoc::Factory<IRouteHandler> RouteHandlerFactory;
+ typedef AdHoc::Factory<IRouteHandler, const Core *> RouteHandlerFactory;
}
#endif