033b2773b2b6306c0d4379d6d68437c9f0a828ac
[metaproxy-moved-to-github.git] / src / router_chain.hpp
1 /* $Id: router_chain.hpp,v 1.3 2005-11-10 23:10:42 adam Exp $
2    Copyright (c) 2005, Index Data.
3
4 %LICENSE%
5  */
6
7 #ifndef ROUTER_CHAIN_HPP
8 #define ROUTER_CHAIN_HPP
9
10
11 #include "router.hpp"
12
13 #include <boost/scoped_ptr.hpp>
14 #include <stdexcept>
15
16 namespace yp2 {
17     class RouterChain : public Router {
18         class Rep;
19     public:
20         RouterChain();
21         virtual ~RouterChain();
22         virtual const filter::Base *move(const filter::Base *filter,
23                                          const Package *package) const;
24         
25         RouterChain & append(const filter::Base &filter);
26     private:
27         boost::scoped_ptr<Rep> m_p;
28         /// disabled because class is singleton
29         RouterChain(const RouterChain &);
30
31         /// disabled because class is singleton
32         RouterChain& operator=(const RouterChain &);
33     };
34 }
35
36 #endif
37 /*
38  * Local variables:
39  * c-basic-offset: 4
40  * indent-tabs-mode: nil
41  * c-file-style: "stroustrup"
42  * End:
43  * vim: shiftwidth=4 tabstop=8 expandtab
44  */