Playing with boost threads and unit test
[metaproxy-moved-to-github.git] / src / filter.hpp
1
2 #ifndef FILTER_HPP
3 #define FILTER_HPP
4
5 #include <stdexcept>
6
7 namespace yp2 {
8
9     class Package;
10     
11     class Filter {
12     public:
13         virtual ~Filter(){};
14
15         ///sends Package off to next Filter, returns altered Package
16         virtual  Package & process(Package & package) const {
17             return package;
18         };
19         virtual  void configure(){};
20
21         /// get function - right val in assignment
22         std::string name() const {
23             return m_name;
24         }
25
26         /// set function - left val in assignment
27         std::string & name() {
28             return m_name;
29         }
30
31         /// set function - can be chained
32         Filter & name(const std::string & name){
33             m_name = name;
34             return *this;
35         }
36         
37     private:
38         std::string m_name;
39     };
40     
41     
42     class FilterException : public std::runtime_error {
43     public:
44         FilterException(const std::string message)
45             : std::runtime_error("FilterException: " + message){
46         };
47     };
48
49   
50 }
51
52 #endif
53 /*
54  * Local variables:
55  * c-basic-offset: 4
56  * indent-tabs-mode: nil
57  * End:
58  * vim: shiftwidth=4 tabstop=8 expandtab
59  */