+/* $Id: router.hpp,v 1.3 2005-10-15 14:09:09 adam Exp $
+ Copyright (c) 2005, Index Data.
+
+%LICENSE%
+ */
#ifndef ROUTER_HPP
#define ROUTER_HPP
#include <list>
namespace yp2 {
-
+ namespace filter {
+ class Base;
+ }
class Package;
- class Filter;
class RouterException : public std::runtime_error {
public:
RouterException(const std::string message)
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;
};
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:
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 Filter *>::const_iterator it;
+ std::list<const filter::Base *>::const_iterator it;
it = m_filter_list.begin();
if (filter)
{
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<const Filter *> m_filter_list;
+ std::list<const filter::Base *> m_filter_list;
private:
/// disabled because class is singleton
RouterChain(const RouterChain &);
* Local variables:
* c-basic-offset: 4
* indent-tabs-mode: nil
+ * c-file-style: "stroustrup"
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
*/