aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMarco Poletti <poletti.marco@gmail.com>2017-07-31 22:39:37 +0100
committerMarco Poletti <poletti.marco@gmail.com>2017-07-31 22:39:55 +0100
commit6ae92082b6caddd6d5609fd444aaec4995d1a26a (patch)
tree735c87c21098421121fb9eb2065087fdbdc8eec6 /examples
parent3a921334d8a04ba4804e963fec558bccec47cc70 (diff)
downloadgoogle-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.cpp2
-rw-r--r--examples/hello_world/main.cpp2
-rw-r--r--examples/multibindings/main.cpp2
-rw-r--r--examples/scaling_doubles/main.cpp2
-rw-r--r--examples/server/main.cpp2
-rw-r--r--examples/server/server.cpp22
-rw-r--r--examples/simple_injection/main.cpp2
-rw-r--r--examples/simple_injection/main_v1.cpp2
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;