17 virtual Package & process(Package & package) const {
20 virtual void configure(){};
22 // set/get the C++ way .. just as showoff
24 // get function - returns copy and keeps object const,
25 // thus is right val in assignment
26 unsigned int max_front_workers() const {
29 // set function - returns reference and changes object,
30 // thus is left val in assignment
31 unsigned int & max_front_workers() {
34 // more traditional set function, taking const reference
35 // or copy (here const ref for demo), returning ref to object
36 // can be chained with other similar functions!
37 Filter & max_front_workers(const unsigned int & max_front){
38 m_max_front = max_front;
43 unsigned int m_max_front;
47 class Filter_Exception : public std::runtime_error {
49 Filter_Exception(const std::string message)
50 : std::runtime_error("Filter_Exception: " + message){
58 virtual const Filter &
59 route(const Filter & filter, Package & package) const {
61 //throw Router_Exception("no routing rules known");
64 virtual void configure(){};
65 Router & rule(Filter filter){
74 class Router_Exception : public std::runtime_error {
76 Router_Exception(const std::string message)
77 : std::runtime_error("Router_Exception: " + message){};
84 // send package to it's next filter defined in chain
87 Filter nextfilter = m_router.route(oldfilter, *this);
88 nextfilter.process(*this);
92 // get function - returns copy and keeps object const,
93 // thus is right val in assignment
94 unsigned int data() const {
97 // set function - returns reference and changes object,
98 // thus is left val in assignment
99 unsigned int & data() {
103 // more traditional set function, taking const reference
104 // or copy (here const ref for demo), returning ref to object
105 // can be chained with other similar functions!
106 Package & data(const unsigned int & data){
111 // get function - returns copy and keeps object const,
112 // thus is right val in assignment
113 Router router() const {
116 // set function - returns reference and changes object,
117 // thus is left val in assignment
121 // more traditional set function, taking const reference
122 // or copy (here const ref for demo), returning ref to object
123 // can be chained with other similar functions!
124 Package & router(const Router & router){
135 class Package_Exception : public std::runtime_error {
137 Package_Exception(const std::string message)
138 : std::runtime_error("Package_Exception: " + message){