1 #include "resolver.h"
2 #include "sample_classes.h"
3
4 #include <iostream>
5
6 using namespace std;
7 using namespace dependency;
8
9
10 extern void register_all_bindings();
11
12
13
14 int main(){
15 Zone request1("request1");
16 Zone request2("request2");
17
18 std::cout << __FUNCTION__ << std::endl;
19
20
21 register_all_bindings();
22
23
24 A* a = supply<A>::fetch(request1);
25 B* b = supply<B>::fetch(request2);
26 a->activity();
27 b->dothing();
28
29 a = supply<A>::fetch(request2);
30 b = supply<B>::fetch(request1);
31 a->activity();
32 b->dothing();
33
34 a = supply<A>::fetch(request2);
35 b = supply<B>::fetch(request1);
36 a->activity();
37 b->dothing();
38
39 a = supply<A,1>::fetch(request1);
40 b = supply<B,1>::fetch(request2);
41 a->activity();
42 b->dothing();
43
44 a = supply<A,1>::fetch(request2);
45 b = supply<B,1>::fetch(request1);
46 a->activity();
47 b->dothing();
48
49 C* c = supply<C>::fetch(request1);
50 c->action();
51 try{
52 c = supply<C,3>::fetch(request1);
53 }catch(logic_error& le){
54 cout << le.what() << endl;
55 }
56 }
syntax highlighted by Code2HTML, v. 0.9.1