X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Frouter.hpp;h=d92db4c0ed71a23dca03916b03940ce8f9f29fc8;hb=b84218609efb976d5b5270bd9e95a3c421af3a13;hp=72be7f9fab5c77f995eb0975bf3588fdd0579a9e;hpb=7969e482bd427717e116917116e52958432a9c16;p=metaproxy-moved-to-github.git diff --git a/src/router.hpp b/src/router.hpp index 72be7f9..d92db4c 100644 --- a/src/router.hpp +++ b/src/router.hpp @@ -6,10 +6,11 @@ #include namespace yp2 { - + namespace filter { + class Base; + } class Package; - class Filter; class RouterException : public std::runtime_error { public: RouterException(const std::string message) @@ -23,7 +24,7 @@ namespace yp2 { virtual ~Router(){}; /// determines next Filter to use from current Filter and Package - virtual const Filter *move(const Filter *filter, + virtual const filter::Base *move(const filter::Base *filter, const Package *package) const { return 0; }; @@ -32,7 +33,7 @@ namespace yp2 { virtual void configure(){}; /// add routing rule expressed as Filter to Router - virtual Router & rule(const Filter &filter){ + virtual Router & rule(const filter::Base &filter){ return *this; } private: @@ -48,9 +49,9 @@ namespace yp2 { public: RouterChain(){}; virtual ~RouterChain(){}; - virtual const Filter *move(const Filter *filter, + virtual const filter::Base *move(const filter::Base *filter, const Package *package) const { - std::list::const_iterator it; + std::list::const_iterator it; it = m_filter_list.begin(); if (filter) { @@ -69,12 +70,12 @@ namespace yp2 { return *it; }; virtual void configure(){}; - RouterChain & rule(const Filter &filter){ + RouterChain & rule(const filter::Base &filter){ m_filter_list.push_back(&filter); return *this; } protected: - std::list m_filter_list; + std::list m_filter_list; private: /// disabled because class is singleton RouterChain(const RouterChain &);