design.h split up into filter.hpp package.hpp router.hpp session.hpp
[metaproxy-moved-to-github.git] / src / test_filter2.cpp
1
2 #include <iostream>
3 //#include "design.h"
4 #include "filter.hpp"
5 #include "router.hpp"
6 #include "package.hpp"
7
8 class FilterConstant: public yp2::Filter {
9 public:
10     yp2::Package & process(yp2::Package & package) const {
11         std::cout << name() + ".process()" << std::endl;
12         package.data() = 1234;
13         return package.move();
14     };
15 };
16
17
18 class FilterDouble: public yp2::Filter {
19 public:
20     yp2::Package & process(yp2::Package & package) const {
21         std::cout <<  name() + ".process()" << std::endl;
22         package.data() = package.data() * 2;
23         return package.move();
24     };
25 };
26     
27     
28 int main(int argc, char **argv)
29 {
30     try {
31         FilterConstant fc;
32         fc.name() = "FilterConstant";
33         FilterDouble fd;
34         fd.name() = "FilterDouble";
35
36         {
37             yp2::RouterChain router1;
38             
39             // test filter set/get/exception
40             router1.rule(fc);
41             
42             router1.rule(fd);
43             
44             yp2::Package pack_in;
45             
46             yp2::Package pack_out;
47             
48             pack_out = pack_in.router(router1).move(); 
49             
50             if (pack_out.data() != 2468)
51             {
52                 exit(1);
53             }
54         }
55         {
56             yp2::RouterChain router1;
57             
58             router1.rule(fd);
59             router1.rule(fc);
60             
61             yp2::Package pack_in;
62             
63             yp2::Package pack_out;
64             
65             pack_out = pack_in.router(router1).move(); 
66             
67             if (pack_out.data() != 1234)
68             {
69                 exit(1);
70             }
71         }
72
73     }
74     catch (std::exception &e) {
75         std::cout << e.what() << "\n";
76         exit(1);
77     }
78     exit(0);
79 }
80
81 /*
82  * Local variables:
83  * c-basic-offset: 4
84  * indent-tabs-mode: nil
85  * End:
86  * vim: shiftwidth=4 tabstop=8 expandtab
87  */