13 class RouterException : public std::runtime_error {
15 RouterException(const std::string message)
16 : std::runtime_error("RouterException: " + message){};
25 /// determines next Filter to use from current Filter and Package
26 virtual const Filter *move(const Filter *filter,
27 const Package *package) const {
31 /// re-read configuration of routing tables
32 virtual void configure(){};
34 /// add routing rule expressed as Filter to Router
35 virtual Router & rule(const Filter &filter){
39 /// disabled because class is singleton
40 Router(const Router &);
42 /// disabled because class is singleton
43 Router& operator=(const Router &);
47 class RouterChain : public Router {
50 virtual ~RouterChain(){};
51 virtual const Filter *move(const Filter *filter,
52 const Package *package) const {
53 std::list<const Filter *>::const_iterator it;
54 it = m_filter_list.begin();
57 for (; it != m_filter_list.end(); it++)
64 if (it == m_filter_list.end())
66 //throw RouterException("no routing rules known");
71 virtual void configure(){};
72 RouterChain & rule(const Filter &filter){
73 m_filter_list.push_back(&filter);
77 std::list<const Filter *> m_filter_list;
79 /// disabled because class is singleton
80 RouterChain(const RouterChain &);
82 /// disabled because class is singleton
83 RouterChain& operator=(const RouterChain &);
94 * indent-tabs-mode: nil
96 * vim: shiftwidth=4 tabstop=8 expandtab