diff options
author | Marco Poletti <poletti.marco@gmail.com> | 2017-07-31 22:39:37 +0100 |
---|---|---|
committer | Marco Poletti <poletti.marco@gmail.com> | 2017-07-31 22:39:55 +0100 |
commit | 6ae92082b6caddd6d5609fd444aaec4995d1a26a (patch) | |
tree | 735c87c21098421121fb9eb2065087fdbdc8eec6 /examples | |
parent | 3a921334d8a04ba4804e963fec558bccec47cc70 (diff) | |
download | google-fruit-6ae92082b6caddd6d5609fd444aaec4995d1a26a.tar.gz |
Change Injector's and NormalizedComponent's constructors to take a component function + args (like the new PartialComponent::install) instead of taking a Component<> directly.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/annotated_injection/main.cpp | 2 | ||||
-rw-r--r-- | examples/hello_world/main.cpp | 2 | ||||
-rw-r--r-- | examples/multibindings/main.cpp | 2 | ||||
-rw-r--r-- | examples/scaling_doubles/main.cpp | 2 | ||||
-rw-r--r-- | examples/server/main.cpp | 2 | ||||
-rw-r--r-- | examples/server/server.cpp | 22 | ||||
-rw-r--r-- | examples/simple_injection/main.cpp | 2 | ||||
-rw-r--r-- | examples/simple_injection/main_v1.cpp | 2 |
8 files changed, 22 insertions, 14 deletions
diff --git a/examples/annotated_injection/main.cpp b/examples/annotated_injection/main.cpp index 68c0248..92e8d15 100644 --- a/examples/annotated_injection/main.cpp +++ b/examples/annotated_injection/main.cpp @@ -19,7 +19,7 @@ using fruit::Injector; int main() { - Injector<Car> injector(getCarComponent()); + Injector<Car> injector(getCarComponent); Car* car(injector); car->brake(); diff --git a/examples/hello_world/main.cpp b/examples/hello_world/main.cpp index de1ac91..5136f5d 100644 --- a/examples/hello_world/main.cpp +++ b/examples/hello_world/main.cpp @@ -50,7 +50,7 @@ Component<Greeter> getGreeterComponent() { int main() { - Injector<Greeter> injector(getGreeterComponent()); + Injector<Greeter> injector(getGreeterComponent); Greeter* greeter = injector.get<Greeter*>(); greeter->greet(); diff --git a/examples/multibindings/main.cpp b/examples/multibindings/main.cpp index 2621d09..f672673 100644 --- a/examples/multibindings/main.cpp +++ b/examples/multibindings/main.cpp @@ -72,7 +72,7 @@ Component<> getListenersComponent() { } int main() { - Injector<> injector(getListenersComponent()); + Injector<> injector(getListenersComponent); std::vector<Listener*> listeners = injector.getMultibindings<Listener>(); // The order of the returned listeners is unspecified, so the lines in output may have any order. diff --git a/examples/scaling_doubles/main.cpp b/examples/scaling_doubles/main.cpp index 189da5e..c26e152 100644 --- a/examples/scaling_doubles/main.cpp +++ b/examples/scaling_doubles/main.cpp @@ -21,7 +21,7 @@ using fruit::Injector; int main() { - Injector<ScalerFactory> injector(getScalerComponent()); + Injector<ScalerFactory> injector(getScalerComponent); ScalerFactory scalerFactory(injector); std::unique_ptr<Scaler> scaler = scalerFactory(12.1); diff --git a/examples/server/main.cpp b/examples/server/main.cpp index 633ab2e..ba84b18 100644 --- a/examples/server/main.cpp +++ b/examples/server/main.cpp @@ -22,7 +22,7 @@ using namespace fruit; int main() { - Injector<Server> injector(getServerComponent()); + Injector<Server> injector(getServerComponent); Server* server(injector); server->run(getRequestDispatcherComponent); diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 8702492..6da7a83 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -36,15 +36,15 @@ public: t.join(); } } - + void run(Component<Required<Request, ServerContext>, RequestDispatcher>(*getRequestDispatcherComponent)()) override { ServerContext serverContext; serverContext.startupTime = getTime(); const NormalizedComponent<Required<Request>, RequestDispatcher> requestDispatcherNormalizedComponent( - createComponent() - .install(getRequestDispatcherComponent) - .bindInstance(serverContext)); + getRequestDispatcherComponentWithContext, + getRequestDispatcherComponent, + &serverContext); cerr << "Server started." << endl; @@ -68,7 +68,7 @@ public: private: static void worker_thread_main(const NormalizedComponent<Required<Request>, RequestDispatcher>& requestDispatcherNormalizedComponent, Request request) { - Injector<RequestDispatcher> injector(requestDispatcherNormalizedComponent, getRequestComponent(request)); + Injector<RequestDispatcher> injector(requestDispatcherNormalizedComponent, getRequestComponent, &request); RequestDispatcher* requestDispatcher(injector); requestDispatcher->handleRequest(); @@ -84,9 +84,17 @@ private: return result; } - static Component<Request> getRequestComponent(Request request) { + static Component<Request> getRequestComponent(Request* request) { + return createComponent() + .bindInstance(*request); + } + + static Component<Required<Request>, RequestDispatcher> getRequestDispatcherComponentWithContext( + Component<Required<Request, ServerContext>, RequestDispatcher>(*getRequestDispatcherComponent)(), + ServerContext* serverContext) { return createComponent() - .bindInstance(request); + .install(getRequestDispatcherComponent) + .bindInstance(*serverContext); } }; diff --git a/examples/simple_injection/main.cpp b/examples/simple_injection/main.cpp index e366952..0fa305a 100644 --- a/examples/simple_injection/main.cpp +++ b/examples/simple_injection/main.cpp @@ -31,7 +31,7 @@ int main(int argc, const char* argv[]) { if (argc == 2 && std::string(argv[1]) == "--checked") checked = true; - Injector<Incrementer> injector(getIncrementerComponent(checked)); + Injector<Incrementer> injector(getIncrementerComponent, checked); Incrementer* incrementer(injector); int x; diff --git a/examples/simple_injection/main_v1.cpp b/examples/simple_injection/main_v1.cpp index 0c55d6a..f887dd0 100644 --- a/examples/simple_injection/main_v1.cpp +++ b/examples/simple_injection/main_v1.cpp @@ -25,7 +25,7 @@ using fruit::Injector; // echo 2147483647 | ./incrementer int main() { - Injector<Incrementer> injector(getSimpleIncrementerComponent()); + Injector<Incrementer> injector(getSimpleIncrementerComponent); Incrementer* incrementer = injector.get<Incrementer*>(); int x; |