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